]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c
Update DriverSample and PlatDriOverrideDxe driver to correct the return value for...
[mirror_edk2.git] / MdeModulePkg / Universal / PlatformDriOverrideDxe / PlatDriOverrideDxe.c
index 47921cd43befba29df33634160c6566edcf5e905..241918691e73e5f7e2afdcf72619d6c4547b0fe2 100644 (file)
@@ -1161,12 +1161,12 @@ PlatOverMngrExtractConfig (
   EFI_STATUS                       Status;\r
   EFI_CALLBACK_INFO                *Private;\r
   EFI_HII_CONFIG_ROUTING_PROTOCOL  *HiiConfigRouting;\r
-  \r
-  if (Request == NULL) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
 \r
-  Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
+  if (Progress == NULL || Results == NULL || Request == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  *Progress        = Request;\r
+  Private          = EFI_CALLBACK_INFO_FROM_THIS (This);\r
   HiiConfigRouting = Private->HiiConfigRouting;\r
 \r
   //\r
@@ -1210,11 +1210,24 @@ PlatOverMngrRouteConfig (
   UINT16                                    KeyValue;\r
   PLAT_OVER_MNGR_DATA                       *FakeNvData;\r
 \r
-  Private    = EFI_CALLBACK_INFO_FROM_THIS (This);\r
-  FakeNvData = (PLAT_OVER_MNGR_DATA *) HiiGetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA));\r
-  if (FakeNvData == NULL) {\r
+  if (Configuration == NULL || Progress == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  *Progress = Configuration;\r
+\r
+  if (!HiiIsConfigHdrMatch (Configuration, &mPlatformOverridesManagerGuid, mVariableName)) {\r
     return EFI_NOT_FOUND;\r
   }\r
+  \r
+  *Progress = Configuration + StrLen (Configuration);\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
+    //\r
+    // FakeNvData can't be got from SetupBrowser, which doesn't need to be set.\r
+    //\r
+    return EFI_SUCCESS;\r
+  }\r
 \r
   if (mCurrentPage == FORM_ID_DRIVER) {\r
     KeyValue = KEY_VALUE_DRIVER_GOTO_ORDER;\r
@@ -1233,10 +1246,6 @@ PlatOverMngrRouteConfig (
     CommintChanges (Private, KeyValue, FakeNvData);\r
   }\r
 \r
-  if (FakeNvData != NULL) {\r
-    FreePool (FakeNvData);\r
-  }\r
-\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -1279,8 +1288,8 @@ PlatOverMngrCallback (
   PLAT_OVER_MNGR_DATA                       *FakeNvData;\r
   \r
   Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
-  FakeNvData = (PLAT_OVER_MNGR_DATA *) HiiGetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA));\r
-  if (FakeNvData == NULL) {\r
+  FakeNvData = &Private->FakeNvData;\r
+  if (!HiiGetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
     return EFI_NOT_FOUND;\r
   }\r
 \r
@@ -1344,14 +1353,6 @@ PlatOverMngrCallback (
   // Pass changed uncommitted data back to Form Browser\r
   //\r
   HiiSetBrowserData (&mPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);\r
-  \r
-  //\r
-  // Update local configuration buffer.\r
-  //\r
-  CopyMem (&Private->FakeNvData, FakeNvData, sizeof (PLAT_OVER_MNGR_DATA));\r
-  if (FakeNvData != NULL) {\r
-    FreePool (FakeNvData);\r
-  }\r
 \r
   return EFI_SUCCESS;\r
 }\r