diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c index 1d4b0f5256..3fa24ad6d5 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c @@ -505,6 +505,10 @@ CallDeviceManager ( // if (gCallbackKey == DEVICE_MANAGER_KEY_DRIVER_HEALTH) { CallDriverHealth (); + // + // Force return to Device Manager + // + gCallbackKey = FRONT_PAGE_KEY_DEVICE_MANAGER; } // @@ -849,7 +853,7 @@ CallDriverHealth ( // a target to display. // Process the diver health status states here. // - if (gCallbackKey >= DRIVER_HEALTH_KEY_OFFSET && gCallbackKey != DRIVER_HEALTH_REPAIR_ALL_KEY && gCallbackKey != FRONT_PAGE_KEY_DEVICE_MANAGER) { + if (gCallbackKey >= DRIVER_HEALTH_KEY_OFFSET && gCallbackKey != DRIVER_HEALTH_REPAIR_ALL_KEY) { ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE; Link = GetFirstNode (&DriverHealthList); @@ -938,12 +942,12 @@ CallDriverHealth ( HiiFreeOpCodeHandle (EndOpCodeHandleRepair); if (gCallbackKey == DRIVER_HEALTH_RETURN_KEY) { + // + // Force return to Driver Health Form + // gCallbackKey = DEVICE_MANAGER_KEY_DRIVER_HEALTH; CallDriverHealth (); } - if (gCallbackKey == DEVICE_MANAGER_KEY_DRIVER_HEALTH) { - CallDeviceManager(); - } } diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c b/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c index b217d0a9b9..55a988467f 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c @@ -1054,7 +1054,7 @@ PlatformBdsEnterFrontPage ( // // User chose to run the Boot Manager // - CallBootManager(); + CallBootManager (); break; case FRONT_PAGE_KEY_DEVICE_MANAGER: @@ -1062,7 +1062,7 @@ PlatformBdsEnterFrontPage ( // Display the Device Manager // do { - CallDeviceManager(); + CallDeviceManager (); } while (gCallbackKey == FRONT_PAGE_KEY_DEVICE_MANAGER); break;