+++ /dev/null
-From 4cb55f9caedd15aaf04b2ac2fbeaf0beebe41e65 Mon Sep 17 00:00:00 2001
-From: Andy Lutomirski <luto@kernel.org>
-Date: Wed, 21 Nov 2018 15:11:23 -0800
-Subject: x86/fault: Don't try to recover from an implicit supervisor access
-
-[ Upstream commit ebb53e2597e2dc7637ab213df006e99681b6ee25 ]
-
-This avoids a situation in which we attempt to apply various fixups
-that are not intended to handle implicit supervisor accesses from
-user mode if we screw up in a way that causes this type of fault.
-
-Signed-off-by: Andy Lutomirski <luto@kernel.org>
-Cc: Borislav Petkov <bp@alien8.de>
-Cc: Dave Hansen <dave.hansen@linux.intel.com>
-Cc: H. Peter Anvin <hpa@zytor.com>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Rik van Riel <riel@surriel.com>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Yu-cheng Yu <yu-cheng.yu@intel.com>
-Link: http://lkml.kernel.org/r/9999f151d72ff352265f3274c5ab3a4105090f49.1542841400.git.luto@kernel.org
-Signed-off-by: Ingo Molnar <mingo@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/mm/fault.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 71d4b9d4d43f..26388576a599 100644
---- a/arch/x86/mm/fault.c
-+++ b/arch/x86/mm/fault.c
-@@ -639,6 +639,15 @@ no_context(struct pt_regs *regs, unsigned long error_code,
- unsigned long flags;
- int sig;
-
-+ if (user_mode(regs)) {
-+ /*
-+ * This is an implicit supervisor-mode access from user
-+ * mode. Bypass all the kernel-mode recovery code and just
-+ * OOPS.
-+ */
-+ goto oops;
-+ }
-+
- /* Are we prepared to handle this kernel fault? */
- if (fixup_exception(regs, X86_TRAP_PF, error_code, address)) {
- /*
-@@ -726,6 +735,7 @@ no_context(struct pt_regs *regs, unsigned long error_code,
- if (IS_ENABLED(CONFIG_EFI))
- efi_recover_from_page_fault(address);
-
-+oops:
- /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice:
---
-2.19.1
-