• Johan Hovold's avatar
    efi: verify that variable services are supported · bad267f9
    Johan Hovold authored
    Current Qualcomm UEFI firmware does not implement the variable services
    but not all revisions clear the corresponding bits in the RT_PROP table
    services mask and instead the corresponding calls return
    EFI_UNSUPPORTED.
    
    This leads to efi core registering the generic efivar ops even when the
    variable services are not supported or when they are accessed through
    some other interface (e.g. Google SMI or the upcoming Qualcomm SCM
    implementation).
    
    Instead of playing games with init call levels to make sure that the
    custom implementations are registered after the generic one, make sure
    that get_next_variable() is actually supported before registering the
    generic ops.
    Signed-off-by: default avatarJohan Hovold <johan+linaro@kernel.org>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    bad267f9
efi.c 29.2 KB