On 12 September 2018 at 15:18, Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > Before this commit we were only calling efi_parse_options() from > make_boot_params(), but make_boot_params() only gets called if the > kernel gets booted directly as an EFI executable. So when booted through > e.g. grub we ended up not parsing the commandline in the boot code. > > This makes the drivers/firmware/efi/libstub code ignore the "quiet" > commandline argument resulting in the following message being printed: > "EFI stub: UEFI Secure Boot is enabled." > > Despite the quiet request. This commits adds an extra call to > efi_parse_options() to efi_main() to make sure that the options are > always processed. This fixes quiet not working. > > This also fixes the libstub code ignoring nokaslr and efi=nochunk. > > Reported-by: Peter Robinson <pbrobinson@xxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > arch/x86/boot/compressed/eboot.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c > index aaabf979cbd9..a4c85d37adc9 100644 > --- a/arch/x86/boot/compressed/eboot.c > +++ b/arch/x86/boot/compressed/eboot.c > @@ -738,6 +738,7 @@ efi_main(struct efi_config *c, struct boot_params *boot_params) > struct desc_struct *desc; > void *handle; > efi_system_table_t *_table; > + const char *cmdline_ptr; > > efi_early = c; > > @@ -755,6 +756,15 @@ efi_main(struct efi_config *c, struct boot_params *boot_params) > else > setup_boot_services32(efi_early); > > + /* > + * make_boot_params() may have been called before efi_main(), in which > + * case this is the second time we parse the cmdline. This is ok, > + * parsing the cmdline multiple times does not have side-effects. > + */ > + cmdline_ptr = (const char *)((u64)hdr->cmd_line_ptr | > + ((u64)boot_params->ext_cmd_line_ptr << 32)); > + efi_parse_options(cmdline_ptr); > + This triggers a warning on 32-bit because sizeof(void*) != sizeof(u64) > /* > * If the boot loader gave us a value for secure_boot then we use that, > * otherwise we ask the BIOS. > -- > 2.19.0.rc0 >