linux_dsm_epyc7002/drivers/firmware
Ard Biesheuvel fe3244945c efi/runtime-wrappers: Run UEFI Runtime Services with interrupts enabled
The UEFI spec allows Runtime Services to be invoked with interrupts
enabled. The only reason we were disabling interrupts was to prevent
recursive calls into the services on the same CPU, which will lead to
deadlock. However, the only context where such invocations may occur
legally is from efi-pstore via efivars, and that code has been updated
to call a non-blocking alternative when invoked from a non-interruptible
context.

So instead, update the ordinary, blocking UEFI Runtime Services wrappers
to execute with interrupts enabled. This aims to prevent excessive interrupt
latencies on uniprocessor platforms with slow variable stores.

Note that other OSes such as Windows call UEFI Runtime Services with
interrupts enabled as well.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/1455712566-16727-3-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-02-22 08:26:25 +01:00
..
broadcom drivers/firmware/broadcom/bcm47xx_nvram.c: use __ioread32_copy() instead of open-coding 2016-01-20 17:09:18 -08:00
efi efi/runtime-wrappers: Run UEFI Runtime Services with interrupts enabled 2016-02-22 08:26:25 +01:00
google firmware: google memconsole driver fixes 2014-02-15 11:30:28 -08:00
arm_scpi.c firmware: arm_scpi: Extend to support sensors 2015-10-09 11:05:52 +01:00
dcdbas.c firmware: drop owner assignment from platform_drivers 2014-10-20 16:20:31 +02:00
dcdbas.h dcdbas: export functionality for use in other drivers 2009-01-08 08:31:12 -08:00
dell_rbu.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
dmi_scan.c firmware: dmi_scan: Save SMBIOS Type 9 System Slots 2016-01-15 22:08:45 +01:00
dmi-id.c dmi-id: fix a memory leak in dmi_id_init error path 2010-08-05 13:53:34 -07:00
dmi-sysfs.c firmware: dmi_scan: add SBMIOS entry and DMI tables 2015-06-25 09:06:56 +02:00
edd.c [SCSI] edd: Treat "XPRS" host bus type the same as "PCI" 2011-10-31 13:26:19 +04:00
iscsi_ibft_find.c efi: Make 'efi_enabled' a function to query EFI facilities 2013-01-30 11:51:59 -08:00
iscsi_ibft.c iscsi_ibft: filter null v4-mapped v6 addresses 2015-06-05 21:07:02 -04:00
Kconfig ARM: 8478/2: arm/arm64: add arm-smccc 2016-01-04 16:19:57 +00:00
Makefile Merge tag 'arm/soc/for-4.4/rpi-drivers' of https://github.com/Broadcom/stblinux into next/drivers 2015-10-26 10:39:22 +09:00
memmap.c drivers/firmware/memmap.c: fix kernel-doc format 2015-06-25 17:00:41 -07:00
pcdp.c serial: 8250_early: Remove setup_early_serial8250_console() 2015-03-26 17:25:27 +01:00
pcdp.h Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
psci.c ARM: 8481/2: drivers: psci: replace psci firmware calls 2016-01-04 16:24:45 +00:00
qcom_scm-32.c qcom-scm: fix endianess issue in __qcom_scm_is_call_available 2015-10-14 14:51:21 -05:00
qcom_scm-64.c firmware: qcom: scm: Add function stubs for ARM64 2015-09-23 12:00:43 -05:00
qcom_scm.c firmware: qcom: scm: Add HDCP Support 2015-05-28 10:47:45 -05:00
qcom_scm.h firmware: qcom: scm: Add HDCP Support 2015-05-28 10:47:45 -05:00
raspberrypi.c ARM: bcm2835: Add the Raspberry Pi firmware driver 2015-10-14 15:30:06 -07:00