Skip to content

Commit

Permalink
efi: efibc: check for efivars write capability
Browse files Browse the repository at this point in the history
Branden reports that commit

  f88814c ("efi/efivars: Expose RT service availability via efivars abstraction")

regresses UEFI platforms that implement GetVariable but not SetVariable
when booting kernels that have EFIBC (bootloader control) enabled.

The reason is that EFIBC is a user of the efivars abstraction, which was
updated to permit users that rely only on the read capability, but not on
the write capability. EFIBC is in the latter category, so it has to check
explicitly whether efivars supports writes.

Fixes: f88814c ("efi/efivars: Expose RT service availability via efivars abstraction")
Tested-by: Branden Sherrell <sherrellbc@gmail.com>
Link: https://lore.kernel.org/linux-efi/AE217103-C96F-4AFC-8417-83EC11962004@gmail.com/
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
  • Loading branch information
Ard Biesheuvel committed Sep 15, 2020
1 parent fb1201a commit 4690832
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/firmware/efi/efibc.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ static int __init efibc_init(void)
{
int ret;

if (!efi_enabled(EFI_RUNTIME_SERVICES))
if (!efivars_kobject() || !efivar_supports_writes())
return -ENODEV;

ret = register_reboot_notifier(&efibc_reboot_notifier);
Expand Down

0 comments on commit 4690832

Please sign in to comment.