The efivar layer is a caching non-volatile variable store abstraction that is normally backed by EFI, but in some cases, might be backed by Google SMI firmware interfaces instead. It is mainly used by efivarfs and EFI pstore, both of which actually need the caching and abstraction properties. However, there are a few other occurrences where efivar is not necessary, or used in an invalid way. So let's fix this up, and remove some impediments to refactoring and cleaning up the efivars layer in the future. Assuming there are no objections to these changes, I intend to queue them up in the EFI tree fairly soon, so that ongoing work depending on these changes can continue as well. Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Cc: Arend van Spriel <aspriel@xxxxxxxxx> Cc: Franky Lin <franky.lin@xxxxxxxxxxxx> Cc: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx> Cc: Kalle Valo <kvalo@xxxxxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Eric Dumazet <edumazet@xxxxxxxxxx> Cc: Jakub Kicinski <kuba@xxxxxxxxxx> Cc: Paolo Abeni <pabeni@xxxxxxxxxx> Cc: Gregory Greenman <gregory.greenman@xxxxxxxxx> Cc: linux-input@xxxxxxxxxxxxxxx Cc: linux-wireless@xxxxxxxxxxxxxxx Cc: brcm80211-dev-list.pdl@xxxxxxxxxxxx Ard Biesheuvel (4): efi: avoid efivars layer when loading SSDTs from variables Input: applespi - avoid efivars API and invoke EFI services directly iwlwifi: Switch to proper EFI variable store interface brcmfmac: Switch to appropriate helper to load EFI variable contents drivers/firmware/efi/efi.c | 103 ++++++++------------ drivers/input/keyboard/applespi.c | 42 +++----- drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 25 ++--- drivers/net/wireless/intel/iwlwifi/fw/uefi.c | 96 ++++++------------ 4 files changed, 95 insertions(+), 171 deletions(-) -- 2.35.1