summaryrefslogtreecommitdiffstats
path: root/kpti-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kpti-fix.patch')
-rw-r--r--kpti-fix.patch129
1 files changed, 0 insertions, 129 deletions
diff --git a/kpti-fix.patch b/kpti-fix.patch
deleted file mode 100644
index e01d3bd4b..000000000
--- a/kpti-fix.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 52994c256df36fda9a715697431cba9daecb6b11 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 3 Jan 2018 15:57:59 +0100
-Subject: x86/pti: Make sure the user/kernel PTEs match
-
-Meelis reported that his K8 Athlon64 emits MCE warnings when PTI is
-enabled:
-
-[Hardware Error]: Error Addr: 0x0000ffff81e000e0
-[Hardware Error]: MC1 Error: L1 TLB multimatch.
-[Hardware Error]: cache level: L1, tx: INSN
-
-The address is in the entry area, which is mapped into kernel _AND_ user
-space. That's special because we switch CR3 while we are executing
-there.
-
-User mapping:
-0xffffffff81e00000-0xffffffff82000000 2M ro PSE GLB x pmd
-
-Kernel mapping:
-0xffffffff81000000-0xffffffff82000000 16M ro PSE x pmd
-
-So the K8 is complaining that the TLB entries differ. They differ in the
-GLB bit.
-
-Drop the GLB bit when installing the user shared mapping.
-
-Fixes: 6dc72c3cbca0 ("x86/mm/pti: Share entry text PMD")
-Reported-by: Meelis Roos <mroos@linux.ee>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Meelis Roos <mroos@linux.ee>
-Cc: Borislav Petkov <bp@alien8.de>
-Cc: Tom Lendacky <thomas.lendacky@amd.com>
-Cc: stable@vger.kernel.org
-Link: https://lkml.kernel.org/r/alpine.DEB.2.20.1801031407180.1957@nanos
----
- arch/x86/mm/pti.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c
-index bce8aea..2da28ba 100644
---- a/arch/x86/mm/pti.c
-+++ b/arch/x86/mm/pti.c
-@@ -367,7 +367,8 @@ static void __init pti_setup_espfix64(void)
- static void __init pti_clone_entry_text(void)
- {
- pti_clone_pmds((unsigned long) __entry_text_start,
-- (unsigned long) __irqentry_text_end, _PAGE_RW);
-+ (unsigned long) __irqentry_text_end,
-+ _PAGE_RW | _PAGE_GLOBAL);
- }
-
- /*
---
-cgit v1.1
-
-From fea692ec9308084475c0c93bf74bcb2a35f3d417 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 3 Jan 2018 19:52:04 +0100
-Subject: [PATCH] CONFIG_PAGE_TABLE_ISOLATION=y on x86_64 causes gcc to
- segfault when building x86_32 binaries
-
-On Wed, 3 Jan 2018, Thomas Gleixner wrote:
-
-> On Wed, 3 Jan 2018, Lars Wendler wrote:
-> > Am Wed, 3 Jan 2018 13:05:38 +0100 (CET)
-> > schrieb Thomas Gleixner <tglx@linutronix.de>:
-> > > Also can you please try Linus v4.15-rc6 with PTI enabled so we can see
-> > > whether that's a backport issue or a general one?
-> >
-> > Same problem with 4.15-rc6. So I suppose that means it's a general
-> > issue.
->
-> Just a shot in the dark as I just decoded another issue on a AMD CPU. Can
-> you please try the patch below?
-
-Ok. Found the real issue. This is a problem on AMD boxen.
-
-Fix below.
-
-Can Xen folks please have a look at that as well?
-
-Thanks,
-
- tglx
-
-8<-------------------
-
-arch/x86/entry/entry_64_compat.S | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
----
- arch/x86/entry/entry_64_compat.S | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
-index 40f17009ec20..4c4b9545b848 100644
---- a/arch/x86/entry/entry_64_compat.S
-+++ b/arch/x86/entry/entry_64_compat.S
-@@ -190,8 +190,13 @@ ENTRY(entry_SYSCALL_compat)
- /* Interrupts are off on entry. */
- swapgs
-
-- /* Stash user ESP and switch to the kernel stack. */
-+ /* Stash user ESP */
- movl %esp, %r8d
-+
-+ /* Use %rsp as scratch reg. User ESP is stashed in r8 */
-+ SWITCH_TO_KERNEL_CR3 scratch_reg=%rsp
-+
-+ /* Switch to the kernel stack */
- movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
-
- /* Construct struct pt_regs on stack */
-@@ -219,12 +224,6 @@ GLOBAL(entry_SYSCALL_compat_after_hwframe)
- pushq $0 /* pt_regs->r14 = 0 */
- pushq $0 /* pt_regs->r15 = 0 */
-
-- /*
-- * We just saved %rdi so it is safe to clobber. It is not
-- * preserved during the C calls inside TRACE_IRQS_OFF anyway.
-- */
-- SWITCH_TO_KERNEL_CR3 scratch_reg=%rdi
--
- /*
- * User mode is traced as though IRQs are on, and SYSENTER
- * turned them off.
---
-2.14.3
-