]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootMaint.c
Fix the issues,
[mirror_edk2.git] / EdkNt32Pkg / Dxe / PlatformBds / Generic / BootMaint / BootMaint.c
index c4b3211dfd63c588fb307014aea0809b00f264d9..2f90e3c6b271198c34d71a982495167f2a46e4f6 100644 (file)
@@ -449,6 +449,7 @@ Returns:
       Index2                  = (UINT16) (KeyValue - HANDLE_OPTION_OFFSET);\r
 \r
       NewMenuEntry            = BOpt_GetMenuEntry (&DriverMenu, Index2);\r
+      ASSERT (NewMenuEntry != NULL);\r
       Private->HandleContext  = (BM_HANDLE_CONTEXT *) NewMenuEntry->VariableContext;\r
 \r
       CleanUpPage (FORM_DRV_ADD_HANDLE_DESC_ID, Private);\r
@@ -556,6 +557,8 @@ Returns:
   case FORM_CON_COM_ID:\r
     NewMenuEntry                      = BOpt_GetMenuEntry (&TerminalMenu, Private->CurrentTerminal);\r
 \r
+    ASSERT (NewMenuEntry != NULL);\r
+\r
     NewTerminalContext                = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
 \r
     NewTerminalContext->BaudRateIndex = CurrentFakeNVMap->COMBaudRate;\r
@@ -1230,6 +1233,7 @@ Returns:
   UINTN                     Index;\r
   BM_MENU_ENTRY             *NewMenuEntry;\r
   BM_FILE_CONTEXT           *NewFileContext;\r
+  BOOLEAN                       BootMaintMenuResetRequired;\r
 \r
   Location        = NULL;\r
   Index           = 0;\r
@@ -1247,6 +1251,7 @@ Returns:
   while (1) {\r
     UpdatePageId (CallbackData, FORM_MAIN_ID);\r
 \r
+    BootMaintMenuResetRequired = FALSE;\r
     Status = FormConfig->SendForm (\r
                           FormConfig,\r
                           TRUE,\r
@@ -1256,9 +1261,13 @@ Returns:
                           NULL,\r
                           (UINT8 *) CallbackData->BmmFakeNvData,\r
                           NULL,\r
-                          NULL\r
+                          &BootMaintMenuResetRequired\r
                           );\r
 \r
+    if (BootMaintMenuResetRequired) {\r
+      EnableResetRequired ();\r
+    }\r
+\r
     ReclaimStringDepository ();\r
 \r
     //\r
@@ -1267,6 +1276,7 @@ Returns:
     if (INACTIVE_STATE != CallbackData->FeCurrentState) {\r
       UpdateFileExplorer (CallbackData, 0);\r
 \r
+      BootMaintMenuResetRequired = FALSE;\r
       Status = FormConfig->SendForm (\r
                             FormConfig,\r
                             TRUE,\r
@@ -1276,9 +1286,13 @@ Returns:
                             NULL,\r
                             NULL,\r
                             NULL,\r
-                            NULL\r
+                            &BootMaintMenuResetRequired\r
                             );\r
 \r
+      if (BootMaintMenuResetRequired) {\r
+        EnableResetRequired ();\r
+      }\r
+\r
       CallbackData->FeCurrentState    = INACTIVE_STATE;\r
       CallbackData->FeDisplayContext  = UNKNOWN_CONTEXT;\r
       ReclaimStringDepository ();\r