efi: vars: Add thin wrapper around EFI get/set variable interface
authorArd Biesheuvel <ardb@kernel.org>
Mon, 20 Jun 2022 11:17:20 +0000 (13:17 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 24 Jun 2022 18:40:19 +0000 (20:40 +0200)
commit472831d4c4b2d8eac783b256e5c829487d5310df
treec2e60fac9726a334f1eaefe2a17dc1d48789f3c6
parentec3507b2ca51286de6ecd85fdac8e722219cdef8
efi: vars: Add thin wrapper around EFI get/set variable interface

The current efivars layer is a jumble of list iterators, shadow data
structures and safe variable manipulation helpers that really belong in
the efivarfs pseudo file system once the obsolete sysfs access method to
EFI variables is removed.

So split off a minimal efivar get/set variable API that reuses the
existing efivars_lock semaphore to mediate access to the various runtime
services, primarily to ensure that performing a SetVariable() on one CPU
while another is calling GetNextVariable() in a loop to enumerate the
contents of the EFI variable store does not result in surprises.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/vars.c
include/linux/efi.h