]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/BootManagerUiLib: show inactive boot options
authorArd Biesheuvel <ard.biesheuvel@arm.com>
Thu, 28 May 2020 09:17:39 +0000 (11:17 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sat, 6 Jun 2020 07:49:42 +0000 (07:49 +0000)
UEFI boot options may exist but have the LOAD_OPTION_ACTIVE flag
cleared. This means that the boot option should not be selected
by default, but it does not mean it should be omitted from the
boot selection presented by the boot manager: for this purpose,
another flag LOAD_OPTION_HIDDEN exists.

Given that the latter flag exists solely for the purpose of omitting
boot options from the boot selection menu, and LOAD_OPTION_XXX flags
can be combined if desired, hiding inactive boot options as well is
a mistake, and violates the intent of paragraph 3.1.3 of the UEFI
specification (revision 2.8 errata A). Let's fix this by dropping
the LOAD_OPTION_ACTIVE check from the code that populates the boot
selection menu.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
MdeModulePkg/Library/BootManagerUiLib/BootManager.c

index 13b40e11b39628a4dd6e6c38bffb8f800ecc113a..4b2c4c77a124da4093aa9e99ab102668cb1bf77a 100644 (file)
@@ -535,9 +535,9 @@ UpdateBootManager (
     mKeyInput++;\r
 \r
     //\r
-    // Don't display the hidden/inactive boot option\r
+    // Don't display hidden boot options, but retain inactive ones.\r
     //\r
-    if (((BootOption[Index].Attributes & LOAD_OPTION_HIDDEN) != 0) || ((BootOption[Index].Attributes & LOAD_OPTION_ACTIVE) == 0)) {\r
+    if ((BootOption[Index].Attributes & LOAD_OPTION_HIDDEN) != 0) {\r
       continue;\r
     }\r
 \r