aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch
deleted file mode 100644
index acb54587..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0080-x86-retpoline-Add-LFENCE-to-the-retpoline-RSB-fillin.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From b72091ebb94e5cb7808c813989e6b5aefa464751 Mon Sep 17 00:00:00 2001
-From: Tom Lendacky <thomas.lendacky@amd.com>
-Date: Sat, 13 Jan 2018 17:27:30 -0600
-Subject: [PATCH 080/103] x86/retpoline: Add LFENCE to the retpoline/RSB
- filling RSB macros
-
-commit 28d437d550e1e39f805d99f9f8ac399c778827b7 upstream.
-
-The PAUSE instruction is currently used in the retpoline and RSB filling
-macros as a speculation trap. The use of PAUSE was originally suggested
-because it showed a very, very small difference in the amount of
-cycles/time used to execute the retpoline as compared to LFENCE. On AMD,
-the PAUSE instruction is not a serializing instruction, so the pause/jmp
-loop will use excess power as it is speculated over waiting for return
-to mispredict to the correct target.
-
-The RSB filling macro is applicable to AMD, and, if software is unable to
-verify that LFENCE is serializing on AMD (possible when running under a
-hypervisor), the generic retpoline support will be used and, so, is also
-applicable to AMD. Keep the current usage of PAUSE for Intel, but add an
-LFENCE instruction to the speculation trap for AMD.
-
-The same sequence has been adopted by GCC for the GCC generated retpolines.
-
-Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Reviewed-by: Borislav Petkov <bp@alien8.de>
-Acked-by: David Woodhouse <dwmw@amazon.co.uk>
-Acked-by: Arjan van de Ven <arjan@linux.intel.com>
-Cc: Rik van Riel <riel@redhat.com>
-Cc: Andi Kleen <ak@linux.intel.com>
-Cc: Paul Turner <pjt@google.com>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Tim Chen <tim.c.chen@linux.intel.com>
-Cc: Jiri Kosina <jikos@kernel.org>
-Cc: Dave Hansen <dave.hansen@intel.com>
-Cc: Andy Lutomirski <luto@kernel.org>
-Cc: Josh Poimboeuf <jpoimboe@redhat.com>
-Cc: Dan Williams <dan.j.williams@intel.com>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
-Cc: Kees Cook <keescook@google.com>
-Link: https://lkml.kernel.org/r/20180113232730.31060.36287.stgit@tlendack-t1.amdoffice.net
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/nospec-branch.h | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h
-index 402a11c..7b45d84 100644
---- a/arch/x86/include/asm/nospec-branch.h
-+++ b/arch/x86/include/asm/nospec-branch.h
-@@ -11,7 +11,7 @@
- * Fill the CPU return stack buffer.
- *
- * Each entry in the RSB, if used for a speculative 'ret', contains an
-- * infinite 'pause; jmp' loop to capture speculative execution.
-+ * infinite 'pause; lfence; jmp' loop to capture speculative execution.
- *
- * This is required in various cases for retpoline and IBRS-based
- * mitigations for the Spectre variant 2 vulnerability. Sometimes to
-@@ -38,11 +38,13 @@
- call 772f; \
- 773: /* speculation trap */ \
- pause; \
-+ lfence; \
- jmp 773b; \
- 772: \
- call 774f; \
- 775: /* speculation trap */ \
- pause; \
-+ lfence; \
- jmp 775b; \
- 774: \
- dec reg; \
-@@ -73,6 +75,7 @@
- call .Ldo_rop_\@
- .Lspec_trap_\@:
- pause
-+ lfence
- jmp .Lspec_trap_\@
- .Ldo_rop_\@:
- mov \reg, (%_ASM_SP)
-@@ -165,6 +168,7 @@
- " .align 16\n" \
- "901: call 903f;\n" \
- "902: pause;\n" \
-+ " lfence;\n" \
- " jmp 902b;\n" \
- " .align 16\n" \
- "903: addl $4, %%esp;\n" \
---
-2.7.4
-