stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sai Praneeth <sai.praneeth.prakhya@intel.com>,
	Bhupesh Sharma <bhsharma@redhat.com>,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 135/191] efi/x86: Handle page faults occurring while running EFI runtime services
Date: Sat,  9 Nov 2019 21:39:17 -0500	[thread overview]
Message-ID: <20191110024013.29782-135-sashal@kernel.org> (raw)
In-Reply-To: <20191110024013.29782-1-sashal@kernel.org>

From: Sai Praneeth <sai.praneeth.prakhya@intel.com>

[ Upstream commit 3425d934fc0312f62024163736a7afe4de20c10f ]

Memory accesses performed by UEFI runtime services should be limited to:
- reading/executing from EFI_RUNTIME_SERVICES_CODE memory regions
- reading/writing from/to EFI_RUNTIME_SERVICES_DATA memory regions
- reading/writing by-ref arguments
- reading/writing from/to the stack.

Accesses outside these regions may cause the kernel to hang because the
memory region requested by the firmware isn't mapped in efi_pgd, which
causes a page fault in ring 0 and the kernel fails to handle it, leading
to die(). To save kernel from hanging, add an EFI specific page fault
handler which recovers from such faults by
1. If the efi runtime service is efi_reset_system(), reboot the machine
   through BIOS.
2. If the efi runtime service is _not_ efi_reset_system(), then freeze
   efi_rts_wq and schedule a new process.

The EFI page fault handler offers us two advantages:
1. Avoid potential hangs caused by buggy firmware.
2. Shout loud that the firmware is buggy and hence is not a kernel bug.

Tested-by: Bhupesh Sharma <bhsharma@redhat.com>
Suggested-by: Matt Fleming <matt@codeblueprint.co.uk>
Based-on-code-from: Ricardo Neri <ricardo.neri@intel.com>
Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
[ardb: clarify commit log]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/x86/include/asm/efi.h              |  1 +
 arch/x86/mm/fault.c                     |  9 +++
 arch/x86/platform/efi/quirks.c          | 78 +++++++++++++++++++++++++
 drivers/firmware/efi/runtime-wrappers.c |  8 +++
 include/linux/efi.h                     |  8 ++-
 5 files changed, 103 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h
index baa549f8e9188..45864898f7e50 100644
--- a/arch/x86/include/asm/efi.h
+++ b/arch/x86/include/asm/efi.h
@@ -138,6 +138,7 @@ extern void __init efi_apply_memmap_quirks(void);
 extern int __init efi_reuse_config(u64 tables, int nr_tables);
 extern void efi_delete_dummy_variable(void);
 extern void efi_switch_mm(struct mm_struct *mm);
+extern void efi_recover_from_page_fault(unsigned long phys_addr);
 
 struct efi_setup_data {
 	u64 fw_vendor;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 1bcb7242ad79a..53e69c7c5cd18 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/efi.h>			/* efi_recover_from_page_fault()*/
 #include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
@@ -25,6 +26,7 @@
 #include <asm/vsyscall.h>		/* emulate_vsyscall		*/
 #include <asm/vm86.h>			/* struct vm86			*/
 #include <asm/mmu_context.h>		/* vma_pkey()			*/
+#include <asm/efi.h>			/* efi_recover_from_page_fault()*/
 
 #define CREATE_TRACE_POINTS
 #include <asm/trace/exceptions.h>
@@ -783,6 +785,13 @@ no_context(struct pt_regs *regs, unsigned long error_code,
 	if (is_errata93(regs, address))
 		return;
 
+	/*
+	 * Buggy firmware could access regions which might page fault, try to
+	 * recover from such faults.
+	 */
+	if (IS_ENABLED(CONFIG_EFI))
+		efi_recover_from_page_fault(address);
+
 	/*
 	 * Oops. The kernel tried to access some bad page. We'll have to
 	 * terminate things with extreme prejudice:
diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
index 844d31cb8a0c7..669babcaf245a 100644
--- a/arch/x86/platform/efi/quirks.c
+++ b/arch/x86/platform/efi/quirks.c
@@ -16,6 +16,7 @@
 #include <asm/efi.h>
 #include <asm/uv/uv.h>
 #include <asm/cpu_device_id.h>
+#include <asm/reboot.h>
 
 #define EFI_MIN_RESERVE 5120
 
@@ -654,3 +655,80 @@ int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff,
 }
 
 #endif
+
+/*
+ * If any access by any efi runtime service causes a page fault, then,
+ * 1. If it's efi_reset_system(), reboot through BIOS.
+ * 2. If any other efi runtime service, then
+ *    a. Return error status to the efi caller process.
+ *    b. Disable EFI Runtime Services forever and
+ *    c. Freeze efi_rts_wq and schedule new process.
+ *
+ * @return: Returns, if the page fault is not handled. This function
+ * will never return if the page fault is handled successfully.
+ */
+void efi_recover_from_page_fault(unsigned long phys_addr)
+{
+	if (!IS_ENABLED(CONFIG_X86_64))
+		return;
+
+	/*
+	 * Make sure that an efi runtime service caused the page fault.
+	 * "efi_mm" cannot be used to check if the page fault had occurred
+	 * in the firmware context because efi=old_map doesn't use efi_pgd.
+	 */
+	if (efi_rts_work.efi_rts_id == NONE)
+		return;
+
+	/*
+	 * Address range 0x0000 - 0x0fff is always mapped in the efi_pgd, so
+	 * page faulting on these addresses isn't expected.
+	 */
+	if (phys_addr >= 0x0000 && phys_addr <= 0x0fff)
+		return;
+
+	/*
+	 * Print stack trace as it might be useful to know which EFI Runtime
+	 * Service is buggy.
+	 */
+	WARN(1, FW_BUG "Page fault caused by firmware at PA: 0x%lx\n",
+	     phys_addr);
+
+	/*
+	 * Buggy efi_reset_system() is handled differently from other EFI
+	 * Runtime Services as it doesn't use efi_rts_wq. Although,
+	 * native_machine_emergency_restart() says that machine_real_restart()
+	 * could fail, it's better not to compilcate this fault handler
+	 * because this case occurs *very* rarely and hence could be improved
+	 * on a need by basis.
+	 */
+	if (efi_rts_work.efi_rts_id == RESET_SYSTEM) {
+		pr_info("efi_reset_system() buggy! Reboot through BIOS\n");
+		machine_real_restart(MRR_BIOS);
+		return;
+	}
+
+	/*
+	 * Before calling EFI Runtime Service, the kernel has switched the
+	 * calling process to efi_mm. Hence, switch back to task_mm.
+	 */
+	arch_efi_call_virt_teardown();
+
+	/* Signal error status to the efi caller process */
+	efi_rts_work.status = EFI_ABORTED;
+	complete(&efi_rts_work.efi_rts_comp);
+
+	clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
+	pr_info("Froze efi_rts_wq and disabled EFI Runtime Services\n");
+
+	/*
+	 * Call schedule() in an infinite loop, so that any spurious wake ups
+	 * will never run efi_rts_wq again.
+	 */
+	for (;;) {
+		set_current_state(TASK_IDLE);
+		schedule();
+	}
+
+	return;
+}
diff --git a/drivers/firmware/efi/runtime-wrappers.c b/drivers/firmware/efi/runtime-wrappers.c
index b31e3d3729a6d..e2abfdb5cee6a 100644
--- a/drivers/firmware/efi/runtime-wrappers.c
+++ b/drivers/firmware/efi/runtime-wrappers.c
@@ -61,6 +61,11 @@ struct efi_runtime_work efi_rts_work;
 ({									\
 	efi_rts_work.status = EFI_ABORTED;				\
 									\
+	if (!efi_enabled(EFI_RUNTIME_SERVICES)) {			\
+		pr_warn_once("EFI Runtime Services are disabled!\n");	\
+		goto exit;						\
+	}								\
+									\
 	init_completion(&efi_rts_work.efi_rts_comp);			\
 	INIT_WORK(&efi_rts_work.work, efi_call_rts);			\
 	efi_rts_work.arg1 = _arg1;					\
@@ -79,6 +84,8 @@ struct efi_runtime_work efi_rts_work;
 	else								\
 		pr_err("Failed to queue work to efi_rts_wq.\n");	\
 									\
+exit:									\
+	efi_rts_work.efi_rts_id = NONE;					\
 	efi_rts_work.status;						\
 })
 
@@ -400,6 +407,7 @@ static void virt_efi_reset_system(int reset_type,
 			"could not get exclusive access to the firmware\n");
 		return;
 	}
+	efi_rts_work.efi_rts_id = RESET_SYSTEM;
 	__efi_call_virt(reset_system, reset_type, status, data_size, data);
 	up(&efi_runtime_lock);
 }
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 9d4c25090fd04..9a86f467b8911 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1666,8 +1666,13 @@ struct linux_efi_tpm_eventlog {
 
 extern int efi_tpm_eventlog_init(void);
 
-/* efi_runtime_service() function identifiers */
+/*
+ * efi_runtime_service() function identifiers.
+ * "NONE" is used by efi_recover_from_page_fault() to check if the page
+ * fault happened while executing an efi runtime service.
+ */
 enum efi_rts_ids {
+	NONE,
 	GET_TIME,
 	SET_TIME,
 	GET_WAKEUP_TIME,
@@ -1677,6 +1682,7 @@ enum efi_rts_ids {
 	SET_VARIABLE,
 	QUERY_VARIABLE_INFO,
 	GET_NEXT_HIGH_MONO_COUNT,
+	RESET_SYSTEM,
 	UPDATE_CAPSULE,
 	QUERY_CAPSULE_CAPS,
 };
-- 
2.20.1


  parent reply	other threads:[~2019-11-10  2:44 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-10  2:37 [PATCH AUTOSEL 4.19 001/191] s390/qeth: uninstall IRQ handler on device removal Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 002/191] s390/qeth: invoke softirqs after napi_schedule() Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 003/191] media: vsp1: Fix vsp1_regs.h license header Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 004/191] media: vsp1: Fix YCbCr planar formats pitch calculation Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 005/191] media: ov2680: don't register the v4l2 subdevice before checking chip ID Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 006/191] PCI/ACPI: Correct error message for ASPM disabling Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 007/191] net: socionext: Fix two sleep-in-atomic-context bugs in ave_rxfifo_reset() Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 008/191] PCI: mediatek: Fix unchecked return value Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 009/191] ARM: dts: xilinx: Fix I2C and SPI bus warnings Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 010/191] serial: uartps: Fix suspend functionality Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 011/191] serial: samsung: Enable baud clock for UART reset procedure in resume Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 012/191] serial: mxs-auart: Fix potential infinite loop Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 013/191] tty: serial: qcom_geni_serial: Fix serial when not used as console Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 014/191] arm64: dts: ti: k3-am65: Change #address-cells and #size-cells of interconnect to 2 Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 015/191] samples/bpf: fix a compilation failure Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 016/191] spi/bcm63xx-hsspi: keep pll clk enabled Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 017/191] spi: mediatek: Don't modify spi_transfer when transfer Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 018/191] ASoC: rt5682: Fix the boost volume at the begining of playback Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 019/191] ipmi_si_pci: fix NULL device in ipmi_si error message Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 020/191] ipmi_si: fix potential integer overflow on large shift Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 021/191] ipmi:dmi: Ignore IPMI SMBIOS entries with a zero base address Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 022/191] ipmi: fix return value of ipmi_set_my_LUN Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 023/191] net: hns3: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 024/191] net: cavium: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 025/191] net: ibm: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 026/191] powerpc/iommu: Avoid derefence before pointer check Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 027/191] selftests/powerpc: Do not fail with reschedule Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 028/191] powerpc/64s/hash: Fix stab_rr off by one initialization Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 029/191] powerpc/pseries/memory-hotplug: Only update DT once per memory DLPAR request Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 030/191] powerpc/pseries: Disable CPU hotplug across migrations Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 031/191] powerpc: Fix duplicate const clang warning in user access code Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 032/191] RDMA/i40iw: Fix incorrect iterator type Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 033/191] ARM: dts: atmel: Fix I2C and SPI bus warnings Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 034/191] OPP: Protect dev_list with opp_table lock Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 035/191] of/unittest: Fix I2C bus unit-address error Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 036/191] libfdt: Ensure INT_MAX is defined in libfdt_env.h Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 037/191] power: supply: twl4030_charger: fix charging current out-of-bounds Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 038/191] power: supply: twl4030_charger: disable eoc interrupt on linear charge Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 039/191] net: mvpp2: fix the number of queues per cpu for PPv2.2 Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 040/191] net: marvell: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 041/191] net: toshiba: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 042/191] net: xilinx: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 043/191] net: broadcom: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 044/191] net: amd: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 045/191] net: sun: " Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 046/191] net: hns3: Fix for setting speed for phy failed problem Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 047/191] net: hns3: Fix cmdq registers initialization issue for vf Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 048/191] net: hns3: Clear client pointer when initialize client failed or unintialize finished Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 049/191] net: hns3: Fix client initialize state issue when roce client initialize failed Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 050/191] net: hns3: Fix parameter type for q_id in hclge_tm_q_to_qs_map_cfg() Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 051/191] nfp: provide a better warning when ring allocation fails Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 052/191] usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is already started Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 053/191] usb: chipidea: Fix otg event handler Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 054/191] usb: usbtmc: Fix ioctl USBTMC_IOCTL_ABORT_BULK_OUT Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 055/191] s390/zcrypt: enable AP bus scan without a valid default domain Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 056/191] s390/vdso: avoid 64-bit vdso mapping for compat tasks Sasha Levin
2019-11-10  2:37 ` [PATCH AUTOSEL 4.19 057/191] s390/vdso: correct CFI annotations of vDSO functions Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 058/191] brcmfmac: increase buffer for obtaining firmware capabilities Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 059/191] brcmsmac: Use kvmalloc() for ucode allocations Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 060/191] mlxsw: spectrum: Init shaper for TCs 8..15 Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 061/191] PCI: portdrv: Initialize service drivers directly Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 062/191] ARM: dts: am335x-evm: fix number of cpsw Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 063/191] ARM: dts: ti: Fix SPI and I2C bus warnings Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 064/191] f2fs: avoid infinite loop in f2fs_alloc_nid Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 065/191] f2fs: fix to recover inode's uid/gid during POR Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 066/191] ARM: dts: ux500: Correct SCU unit address Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 067/191] ARM: dts: ux500: Fix LCDA clock line muxing Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 068/191] ARM: dts: ste: Fix SPI controller node names Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 069/191] spi: pic32: Use proper enum in dmaengine_prep_slave_rg Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 070/191] crypto: chacha20 - Fix chacha20_block() keystream alignment (again) Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 071/191] cpufeature: avoid warning when compiling with clang Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 072/191] crypto: arm/crc32 - avoid warning when compiling with Clang Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 073/191] ARM: dts: marvell: Fix SPI and I2C bus warnings Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 074/191] x86/mce-inject: Reset injection struct after injection Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 075/191] ARM: dts: stm32: enable display on stm32mp157c-ev1 board Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 076/191] ARM: dts: clearfog: fix sdhci supply property name Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 077/191] ARM: dts: stm32: Fix SPI controller node names Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 078/191] bnx2x: Ignore bandwidth attention in single function mode Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 079/191] PCI/AER: Take reference on error devices Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 080/191] PCI/AER: Don't read upstream ports below fatal errors Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 081/191] PCI/ERR: Use slot reset if available Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 082/191] samples/bpf: fix compilation failure Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 083/191] net: phy: mdio-bcm-unimac: Allow configuring MDIO clock divider Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 084/191] net: micrel: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 085/191] net: freescale: " Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 086/191] x86/CPU: Use correct macros for Cyrix calls Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 087/191] x86/CPU: Change query logic so CPUID is enabled before testing Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 088/191] EDAC: Correct DIMM capacity unit symbol Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 089/191] MIPS: kexec: Relax memory restriction Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 090/191] arm64: dts: rockchip: Fix microSD in rk3399 sapphire board Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 091/191] mlxsw: Make MLXSW_SP1_FWREV_MINOR a hard requirement Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 092/191] media: imx: work around false-positive warning, again Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 093/191] media: pci: ivtv: Fix a sleep-in-atomic-context bug in ivtv_yuv_init() Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 094/191] media: au0828: Fix incorrect error messages Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 095/191] media: davinci: Fix implicit enum conversion warning Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 096/191] ARM: dts: rockchip: explicitly set vcc_sd0 pin to gpio on rk3188-radxarock Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 097/191] usb: gadget: uvc: configfs: Drop leaked references to config items Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 098/191] usb: gadget: uvc: configfs: Prevent format changes after linking header Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 099/191] usb: gadget: uvc: configfs: Sort frame intervals upon writing Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 100/191] ARM: dts: exynos: Correct audio subsystem parent clock on Peach Chromebooks Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 101/191] i2c: aspeed: fix invalid clock parameters for very large divisors Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 102/191] gpiolib: Fix gpio_direction_* for single direction GPIOs Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 103/191] ARM: at91: pm: call put_device instead of of_node_put in at91_pm_config_ws Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 104/191] phy: brcm-sata: allow PHY_BRCM_SATA driver to be built for DSL SoCs Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 105/191] phy: renesas: rcar-gen3-usb2: fix vbus_ctrl for role sysfs Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 106/191] phy: phy-twl4030-usb: fix denied runtime access Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 107/191] ARM: dts: imx6ull: update vdd_soc voltage for 900MHz operating point Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 108/191] usb: gadget: uvc: Factor out video USB request queueing Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 109/191] usb: gadget: uvc: Only halt video streaming endpoint in bulk mode Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 110/191] coresight: Use ERR_CAST instead of ERR_PTR Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 111/191] coresight: Fix handling of sinks Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 112/191] coresight: perf: Fix per cpu path management Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 113/191] coresight: perf: Disable trace path upon source error Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 114/191] coresight: tmc-etr: Handle driver mode specific ETR buffers Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 115/191] coresight: etm4x: Configure EL2 exception level when kernel is running in HYP Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 116/191] coresight: tmc: Fix byte-address alignment for RRP Sasha Levin
2019-11-10  2:38 ` [PATCH AUTOSEL 4.19 117/191] coresight: dynamic-replicator: Handle multiple connections Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 118/191] slimbus: ngd: register ngd driver only once Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 119/191] slimbus: ngd: return proper error code instead of zero Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 120/191] silmbus: ngd: register controller after power up Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 121/191] misc: kgdbts: Fix restrict error Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 122/191] misc: genwqe: should return proper error value Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 123/191] vmbus: keep pointer to ring buffer page Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 124/191] vfio/pci: Fix potential memory leak in vfio_msi_cap_len Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 125/191] vfio/pci: Mask buggy SR-IOV VF INTx support Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 126/191] iw_cxgb4: Use proper enumerated type in c4iw_bar2_addrs Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 127/191] scsi: libsas: always unregister the old device if going to discover new Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 128/191] f2fs: fix remount problem of option io_bits Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 129/191] phy: lantiq: Fix compile warning Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 130/191] ARM: dts: meson8b: odroidc1: enable the SAR ADC Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 131/191] arm64: dts: fsl: Fix I2C and SPI bus warnings Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 132/191] ARM: dts: imx51-zii-rdu1: Fix the rtc compatible string Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 133/191] efi: honour memory reservations passed via a linux specific config table Sasha Levin
2019-11-10  7:33   ` Ard Biesheuvel
2019-11-10 13:27     ` Sasha Levin
2019-11-10 14:16       ` Ard Biesheuvel
2019-11-10 15:56         ` Sasha Levin
2019-11-10 16:26           ` Ard Biesheuvel
2019-11-10 18:08             ` Marc Zyngier
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 134/191] efi: Make efi_rts_work accessible to efi page fault handler Sasha Levin
2019-11-10  7:35   ` Ard Biesheuvel
2019-11-10  2:39 ` Sasha Levin [this message]
2019-11-10  7:40   ` [PATCH AUTOSEL 4.19 135/191] efi/x86: Handle page faults occurring while running EFI runtime services Ard Biesheuvel
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 136/191] arm64: tegra: I2C on Tegra194 is not compatible with Tegra114 Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 137/191] ARM: dts: tegra30: fix xcvr-setup-use-fuses Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 138/191] ARM: dts: tegra20: restore address order Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 139/191] ARM: tegra: apalis_t30: fix mmc1 cmd pull-up Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 140/191] ARM: tegra: apalis_t30: fix mcp2515 can controller interrupt polarity Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 141/191] ARM: tegra: colibri_t30: " Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 142/191] ARM: dts: paz00: fix wakeup gpio keycode Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 143/191] net: smsc: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 144/191] net: faraday: " Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 145/191] PCI/ERR: Run error recovery callbacks for all affected devices Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 146/191] f2fs: update i_size after DIO completion Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 147/191] f2fs: fix to recover inode's project id during POR Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 148/191] f2fs: mark inode dirty explicitly in recover_inode() Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 149/191] RDMA: Fix dependencies for rdma_user_mmap_io Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 150/191] EDAC: Raise the maximum number of memory controllers Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 151/191] ARM: dts: realview: Fix SPI controller node names Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 152/191] firmware: dell_rbu: Make payload memory uncachable Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 153/191] Bluetooth: hci_serdev: clear HCI_UART_PROTO_READY to avoid closing proto races Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 154/191] Bluetooth: L2CAP: Detect if remote is not able to use the whole MPS Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 155/191] Bluetooth: btrsi: fix bt tx timeout issue Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 156/191] x86/hyperv: Suppress "PCI: Fatal: No config space access function found" Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 157/191] crypto: s5p-sss: Fix race in error handling Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 158/191] crypto: s5p-sss: Fix Fix argument list alignment Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 159/191] crypto: fix a memory leak in rsa-kcs1pad's encryption mode Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 160/191] iwlwifi: dbg: don't crash if the firmware crashes in the middle of a debug dump Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 161/191] iwlwifi: fix non_shared_ant for 22000 devices Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 162/191] iwlwifi: pcie: read correct prph address for newer devices Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 163/191] iwlwifi: api: annotate compressed BA notif array sizes Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 164/191] iwlwifi: pcie: gen2: build A-MSDU only for GSO Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 165/191] iwlwifi: pcie: fit reclaim msg to MAX_MSG_LEN Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 166/191] iwlwifi: mvm: use correct FIFO length Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 167/191] iwlwifi: mvm: Allow TKIP for AP mode Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 168/191] scsi: NCR5380: Clear all unissued commands on host reset Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 169/191] scsi: NCR5380: Have NCR5380_select() return a bool Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 170/191] scsi: NCR5380: Withhold disconnect privilege for REQUEST SENSE Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 171/191] scsi: NCR5380: Use DRIVER_SENSE to indicate valid sense data Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 172/191] scsi: NCR5380: Check for invalid reselection target Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 173/191] scsi: NCR5380: Don't clear busy flag when abort fails Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 174/191] scsi: NCR5380: Don't call dsprintk() following reselection interrupt Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 175/191] scsi: NCR5380: Handle BUS FREE during reselection Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 176/191] scsi: NCR5380: Check for bus reset Sasha Levin
2019-11-10  2:39 ` [PATCH AUTOSEL 4.19 177/191] arm64: dts: amd: Fix SPI bus warnings Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 178/191] arm64: dts: lg: Fix SPI controller node names Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 179/191] ARM: dts: lpc32xx: " Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 180/191] rtc: isl1208: avoid possible sysfs race Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 181/191] rtc: tx4939: fixup nvmem name and register size Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 182/191] rtc: armada38x: fix possible race condition Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 183/191] netfilter: masquerade: don't flush all conntracks if only one address deleted on device Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 184/191] usb: xhci-mtk: fix ISOC error when interval is zero Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 185/191] usb: usbtmc: uninitialized symbol 'actual' in usbtmc_ioctl_clear Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 186/191] fuse: use READ_ONCE on congestion_threshold and max_background Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 187/191] IB/iser: Fix possible NULL deref at iser_inv_desc() Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 188/191] media: ov2680: fix null dereference at power on Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 189/191] s390/vdso: correct vdso mapping for compat tasks Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 190/191] net: phy: mdio-bcm-unimac: mark PM functions as __maybe_unused Sasha Levin
2019-11-10  2:40 ` [PATCH AUTOSEL 4.19 191/191] x86/efi: fix a -Wtype-limits compilation warning Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191110024013.29782-135-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=bhsharma@redhat.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sai.praneeth.prakhya@intel.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).