efi: vars: Use locking version to iterate over efivars linked lists
authorArd Biesheuvel <ardb@kernel.org>
Tue, 21 Jun 2022 13:48:29 +0000 (15:48 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 24 Jun 2022 18:40:19 +0000 (20:40 +0200)
commit3a75f9f2f9ad19bb9a0f566373ae91d8f09db85e
treed0e2715184101b4a2ca705d0ad2c19796b58a8f2
parent859748255b43460685e93a1f8a40b8cdc3be02f2
efi: vars: Use locking version to iterate over efivars linked lists

Both efivars and efivarfs uses __efivar_entry_iter() to go over the
linked list that shadows the list of EFI variables held by the firmware,
but fail to call the begin/end helpers that are documented as a
prerequisite.

So switch to the proper version, which is efivar_entry_iter(). Given
that in both cases, efivar_entry_remove() is invoked with the lock held
already, don't take the lock there anymore.

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