linux_dsm_epyc7002/drivers/firmware/efi
Ard Biesheuvel ca0e30dcaa efi: Add nonblocking option to efi_query_variable_store()
The function efi_query_variable_store() may be invoked by
efivar_entry_set_nonblocking(), which itself takes care to only
call a non-blocking version of the SetVariable() runtime
wrapper. However, efi_query_variable_store() may call the
SetVariable() wrapper directly, as well as the wrapper for
QueryVariableInfo(), both of which could deadlock in the same
way we are trying to prevent by calling
efivar_entry_set_nonblocking() in the first place.

So instead, modify efi_query_variable_store() to use the
non-blocking variants of QueryVariableInfo() (and give up rather
than free up space if the available space is below
EFI_MIN_RESERVE) if invoked with the 'nonblocking' argument set
to true.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/1454364428-494-5-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-02-03 11:31:04 +01:00
..
libstub UBSAN: run-time undefined behavior sanity checker 2016-01-20 17:09:18 -08:00
arm-init.c arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM 2015-12-09 16:57:23 +00:00
arm-runtime.c arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM 2015-12-09 16:57:23 +00:00
cper.c efi: Handle memory error structures produced based on old versions of standard 2015-07-15 13:30:38 +01:00
efi-pstore.c Half dozen small cleanups plus change to allow pstore 2015-11-05 11:51:18 -08:00
efi.c efi: Expose non-blocking set_variable() wrapper to efivars 2016-02-03 11:31:01 +01:00
efivars.c efi: efivar_create_sysfs_entry() should return negative error codes 2015-04-30 22:15:03 +01:00
esrt.c efi/esrt: Don't preformat name 2015-12-14 15:24:03 +00:00
fake_mem.c efi: Fix warning of int-to-pointer-cast on x86 32-bit builds 2015-10-28 12:28:06 +01:00
Kconfig * Make the EFI System Resource Table (ESRT) driver explicitly 2015-10-14 16:51:34 +02:00
Makefile ARM: wire up UEFI init and runtime support 2015-12-13 19:18:30 +01:00
reboot.c x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag 2014-07-18 21:23:52 +01:00
runtime-map.c efi: Fix error handling in add_sysfs_runtime_map_entry() 2015-05-05 16:20:13 +01:00
runtime-wrappers.c efi/runtime-wrappers: Add a nonblocking version of QueryVariableInfo() 2016-02-03 11:31:03 +01:00
vars.c efi: Add nonblocking option to efi_query_variable_store() 2016-02-03 11:31:04 +01:00