lkml.org 
[lkml]   [2021]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 144/157] efivars: respect EFI_UNSUPPORTED return from firmware
    Date
    From: Shawn Guo <shawn.guo@linaro.org>

    commit 483028edacab374060d93955382b4865a9e07cba upstream.

    As per UEFI spec 2.8B section 8.2, EFI_UNSUPPORTED may be returned by
    EFI variable runtime services if no variable storage is supported by
    firmware. In this case, there is no point for kernel to continue
    efivars initialization. That said, efivar_init() should fail by
    returning an error code, so that efivarfs will not be mounted on
    /sys/firmware/efi/efivars at all. Otherwise, user space like efibootmgr
    will be confused by the EFIVARFS_MAGIC seen there, while EFI variable
    calls cannot be made successfully.

    Cc: <stable@vger.kernel.org> # v5.10+
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/firmware/efi/vars.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/drivers/firmware/efi/vars.c
    +++ b/drivers/firmware/efi/vars.c
    @@ -485,6 +485,10 @@ int efivar_init(int (*func)(efi_char16_t
    }

    break;
    + case EFI_UNSUPPORTED:
    + err = -EOPNOTSUPP;
    + status = EFI_NOT_FOUND;
    + break;
    case EFI_NOT_FOUND:
    break;
    default:

    \
     
     \ /
      Last update: 2021-03-22 13:54    [W:4.136 / U:1.652 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site