]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/SetupBrowser: Call submit callback function when no failure
authorDandan Bi <dandan.bi@intel.com>
Tue, 26 Apr 2016 11:52:02 +0000 (19:52 +0800)
committerStar Zeng <star.zeng@intel.com>
Fri, 6 May 2016 02:41:19 +0000 (10:41 +0800)
In current code will always call submit callback function,
but we should call submit callback function when has no failure
in the submit action. This patch to fix this issues.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdeModulePkg/Universal/SetupBrowserDxe/Setup.c

index a437674bdc5c0f3e57b170d4f956e652d729315f..23094f8145fa371558ed30d477aa93f4f5a36de4 100644 (file)
@@ -3182,6 +3182,9 @@ SubmitForForm (
   EFI_STRING              Progress;\r
   BROWSER_STORAGE         *Storage;\r
   FORM_BROWSER_CONFIG_REQUEST  *ConfigInfo;\r
+  BOOLEAN                 SubmitFormFail;\r
+\r
+  SubmitFormFail = FALSE;\r
 \r
   if (!IsNvUpdateRequiredForForm (Form)) {\r
     return EFI_SUCCESS;\r
@@ -3231,6 +3234,7 @@ SubmitForForm (
       //\r
       // Submit fail, to get the RestoreConfigRequest and SyncConfigRequest.\r
       //\r
+      SubmitFormFail = TRUE;\r
       GetSyncRestoreConfigRequest (ConfigInfo->Storage, ConfigInfo->ConfigRequest, Progress, &ConfigInfo->RestoreConfigRequest, &ConfigInfo->SyncConfigRequest);\r
       InsertTailList (&gBrowserSaveFailFormSetList, &ConfigInfo->SaveFailLink);\r
       continue;\r
@@ -3288,7 +3292,9 @@ SubmitForForm (
   //\r
   // 6 Call callback with Submitted type to inform the driver.\r
   //\r
-  SubmitCallback (FormSet, Form);\r
+  if (!SubmitFormFail) {\r
+    SubmitCallback (FormSet, Form);\r
+  }\r
 \r
   return Status;\r
 }\r
@@ -3324,8 +3330,10 @@ SubmitForFormSet (
   FORM_BROWSER_FORM       *Form;\r
   BOOLEAN                 HasInserted;\r
   FORM_BROWSER_STATEMENT  *Question;\r
+  BOOLEAN                 SubmitFormSetFail;\r
 \r
   HasInserted = FALSE;\r
+  SubmitFormSetFail = FALSE;\r
 \r
   if (!IsNvUpdateRequiredForFormSet (FormSet)) {\r
     return EFI_SUCCESS;\r
@@ -3388,6 +3396,7 @@ SubmitForFormSet (
       //\r
       // Submit fail, to get the RestoreConfigRequest and SyncConfigRequest.\r
       //\r
+      SubmitFormSetFail = TRUE;\r
       GetSyncRestoreConfigRequest (FormSetStorage->BrowserStorage, FormSetStorage->ConfigRequest, Progress, &FormSetStorage->RestoreConfigRequest, &FormSetStorage->SyncConfigRequest);\r
       InsertTailList (&FormSet->SaveFailStorageListHead, &FormSetStorage->SaveFailLink);\r
       if (!HasInserted) {\r
@@ -3481,7 +3490,9 @@ SubmitForFormSet (
   //\r
   // 6. Call callback with Submitted type to inform the driver.\r
   //\r
-  SubmitCallback (FormSet, NULL);\r
+  if (!SubmitFormSetFail) {\r
+    SubmitCallback (FormSet, NULL);\r
+  }\r
 \r
   return Status;\r
 }\r