efi/libstub: Take command line overrides into account for loaded files
authorArd Biesheuvel <ardb@kernel.org>
Sun, 13 Oct 2024 11:10:38 +0000 (13:10 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Sun, 17 Nov 2024 07:54:01 +0000 (08:54 +0100)
When CONFIG_CMDLINE_OVERRIDE or CONFIG_CMDLINE_FORCE are configured, the
command line provided by the boot stack should be ignored, and only the
built-in command line should be taken into account.

Add the required handling of this when dealing with initrd= or dtb=
command line options in the EFI stub.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/file.c

index 33d45d1..bd626d5 100644 (file)
@@ -195,7 +195,8 @@ efi_status_t handle_cmdline_files(efi_loaded_image_t *image,
                                  unsigned long *load_addr,
                                  unsigned long *load_size)
 {
-       const bool ignore_load_options = false;
+       const bool ignore_load_options = IS_ENABLED(CONFIG_CMDLINE_OVERRIDE) ||
+                                        IS_ENABLED(CONFIG_CMDLINE_FORCE);
        const efi_char16_t *cmdline = efi_table_attr(image, load_options);
        u32 cmdline_len = efi_table_attr(image, load_options_size);
        unsigned long efi_chunk_size = ULONG_MAX;