aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch129
1 files changed, 0 insertions, 129 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch
deleted file mode 100644
index fddb3346..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0001-x86-paravirt-objtool-Annotate-indirect-calls.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 8b18def6a2da1b716f49fad6744a41c94d31a2c5 Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <peterz@infradead.org>
-Date: Wed, 17 Jan 2018 16:58:11 +0100
-Subject: [PATCH 01/93] x86/paravirt, objtool: Annotate indirect calls
-
-commit 3010a0663fd949d122eca0561b06b0a9453f7866 upstream.
-
-Paravirt emits indirect calls which get flagged by objtool retpoline
-checks, annotate it away because all these indirect calls will be
-patched out before we start userspace.
-
-This patching happens through alternative_instructions() ->
-apply_paravirt() -> pv_init_ops.patch() which will eventually end up
-in paravirt_patch_default(). This function _will_ write direct
-alternatives.
-
-Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
-Acked-by: Thomas Gleixner <tglx@linutronix.de>
-Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Cc: Andy Lutomirski <luto@kernel.org>
-Cc: Arjan van de Ven <arjan@linux.intel.com>
-Cc: Borislav Petkov <bp@alien8.de>
-Cc: Dan Williams <dan.j.williams@intel.com>
-Cc: Dave Hansen <dave.hansen@linux.intel.com>
-Cc: David Woodhouse <dwmw2@infradead.org>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Signed-off-by: Ingo Molnar <mingo@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/x86/include/asm/paravirt.h | 16 ++++++++++++----
- arch/x86/include/asm/paravirt_types.h | 5 ++++-
- 2 files changed, 16 insertions(+), 5 deletions(-)
-
-diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
-index ce93281..24af8b1 100644
---- a/arch/x86/include/asm/paravirt.h
-+++ b/arch/x86/include/asm/paravirt.h
-@@ -6,6 +6,7 @@
- #ifdef CONFIG_PARAVIRT
- #include <asm/pgtable_types.h>
- #include <asm/asm.h>
-+#include <asm/nospec-branch.h>
-
- #include <asm/paravirt_types.h>
-
-@@ -869,23 +870,27 @@ extern void default_banner(void);
-
- #define INTERRUPT_RETURN \
- PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_iret), CLBR_NONE, \
-- jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_iret))
-+ ANNOTATE_RETPOLINE_SAFE; \
-+ jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_iret);)
-
- #define DISABLE_INTERRUPTS(clobbers) \
- PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_disable), clobbers, \
- PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
-+ ANNOTATE_RETPOLINE_SAFE; \
- call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_disable); \
- PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
-
- #define ENABLE_INTERRUPTS(clobbers) \
- PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_irq_enable), clobbers, \
- PV_SAVE_REGS(clobbers | CLBR_CALLEE_SAVE); \
-+ ANNOTATE_RETPOLINE_SAFE; \
- call PARA_INDIRECT(pv_irq_ops+PV_IRQ_irq_enable); \
- PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
-
- #ifdef CONFIG_X86_32
- #define GET_CR0_INTO_EAX \
- push %ecx; push %edx; \
-+ ANNOTATE_RETPOLINE_SAFE; \
- call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
- pop %edx; pop %ecx
- #else /* !CONFIG_X86_32 */
-@@ -907,11 +912,13 @@ extern void default_banner(void);
- */
- #define SWAPGS \
- PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_swapgs), CLBR_NONE, \
-- call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs) \
-+ ANNOTATE_RETPOLINE_SAFE; \
-+ call PARA_INDIRECT(pv_cpu_ops+PV_CPU_swapgs); \
- )
-
- #define GET_CR2_INTO_RAX \
-- call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr2)
-+ ANNOTATE_RETPOLINE_SAFE; \
-+ call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr2);
-
- #define PARAVIRT_ADJUST_EXCEPTION_FRAME \
- PARA_SITE(PARA_PATCH(pv_irq_ops, PV_IRQ_adjust_exception_frame), \
-@@ -921,7 +928,8 @@ extern void default_banner(void);
- #define USERGS_SYSRET64 \
- PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \
- CLBR_NONE, \
-- jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
-+ ANNOTATE_RETPOLINE_SAFE; \
-+ jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64);)
- #endif /* CONFIG_X86_32 */
-
- #endif /* __ASSEMBLY__ */
-diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
-index 0f400c0..04b7971 100644
---- a/arch/x86/include/asm/paravirt_types.h
-+++ b/arch/x86/include/asm/paravirt_types.h
-@@ -42,6 +42,7 @@
- #include <asm/desc_defs.h>
- #include <asm/kmap_types.h>
- #include <asm/pgtable_types.h>
-+#include <asm/nospec-branch.h>
-
- struct page;
- struct thread_struct;
-@@ -391,7 +392,9 @@ int paravirt_disable_iospace(void);
- * offset into the paravirt_patch_template structure, and can therefore be
- * freely converted back into a structure offset.
- */
--#define PARAVIRT_CALL "call *%c[paravirt_opptr];"
-+#define PARAVIRT_CALL \
-+ ANNOTATE_RETPOLINE_SAFE \
-+ "call *%c[paravirt_opptr];"
-
- /*
- * These macros are intended to wrap calls through one of the paravirt
---
-2.7.4
-