]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c
MdeModulePkg GraphicsConsole: Add text mode for PcdConOutColumn/Row
[mirror_edk2.git] / MdeModulePkg / Universal / PlatformDriOverrideDxe / PlatDriOverrideDxe.c
index 4f68d98e6b88158d6471c989c567133741b1e835..70f29998bad4a58202d8830f54a77fe6c56cad61 100644 (file)
@@ -661,7 +661,7 @@ UpdateBindingDriverSelectPage (
   // Switch the item callback key value to its NO. in mDevicePathHandleBuffer\r
   //\r
   mSelectedCtrIndex = KeyValue - KEY_VALUE_DEVICE_OFFSET;\r
-  ASSERT (mSelectedCtrIndex < MAX_CHOICE_NUM);\r
+  ASSERT (mSelectedCtrIndex >= 0 && mSelectedCtrIndex < MAX_CHOICE_NUM);\r
 \r
   mLastSavedDriverImageNum = 0;\r
 \r
@@ -1145,7 +1145,7 @@ CommintChanges (
 \r
   @retval EFI_SUCCESS            The Results is filled with the requested values.\r
   @retval EFI_OUT_OF_RESOURCES   Not enough memory to store the results.\r
-  @retval EFI_INVALID_PARAMETER  Request is NULL, illegal syntax, or unknown name.\r
+  @retval EFI_INVALID_PARAMETER  Request is illegal syntax, or unknown name.\r
   @retval EFI_NOT_FOUND          Routing data doesn't match any storage in this driver.\r
 \r
 **/\r
@@ -1334,7 +1334,14 @@ PlatOverMngrCallback (
   EFI_STRING_ID                             NewStringToken;\r
   EFI_INPUT_KEY                             Key;\r
   PLAT_OVER_MNGR_DATA                       *FakeNvData;\r
-  \r
+\r
+  if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) {
+    //\r
+    // Do nothing for UEFI OPEN/CLOSE Action\r
+    //\r
+    return EFI_SUCCESS;
+  }\r
+\r
   Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
   FakeNvData = &Private->FakeNvData;\r
   if (!HiiGetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
@@ -1654,26 +1661,7 @@ PlatDriOverrideDxeInit (
   return EFI_SUCCESS;\r
 \r
 Finish:\r
-  if (mCallbackInfo->DriverHandle != NULL) {\r
-    gBS->UninstallMultipleProtocolInterfaces (\r
-           mCallbackInfo->DriverHandle,\r
-           &gEfiDevicePathProtocolGuid,\r
-           &mHiiVendorDevicePath,\r
-           &gEfiHiiConfigAccessProtocolGuid,\r
-           &mCallbackInfo->ConfigAccess,\r
-           &gEfiPlatformDriverOverrideProtocolGuid,\r
-           &mCallbackInfo->PlatformDriverOverride,\r
-           NULL\r
-           );\r
-  }\r
-  \r
-  if (mCallbackInfo->RegisteredHandle != NULL) {\r
-    HiiRemovePackages (mCallbackInfo->RegisteredHandle);\r
-  }\r
-\r
-  if (mCallbackInfo != NULL) {\r
-    FreePool (mCallbackInfo);\r
-  }\r
+  PlatDriOverrideDxeUnload (ImageHandle);\r
 \r
   return Status;\r
 }\r
@@ -1691,6 +1679,8 @@ PlatDriOverrideDxeUnload (
   IN EFI_HANDLE  ImageHandle\r
   )\r
 {\r
+  ASSERT (mCallbackInfo != NULL);\r
+\r
   if (mCallbackInfo->DriverHandle != NULL) {\r
     gBS->UninstallMultipleProtocolInterfaces (\r
            mCallbackInfo->DriverHandle,\r
@@ -1708,9 +1698,7 @@ PlatDriOverrideDxeUnload (
     HiiRemovePackages (mCallbackInfo->RegisteredHandle);\r
   }\r
 \r
-  if (mCallbackInfo != NULL) {\r
-    FreePool (mCallbackInfo);\r
-  }\r
+  FreePool (mCallbackInfo);\r
 \r
   return EFI_SUCCESS;\r
 }\r