diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0089-objtool-x86-Add-several-functions-and-files-to-the-o.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.9.21/0089-objtool-x86-Add-several-functions-and-files-to-the-o.patch | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0089-objtool-x86-Add-several-functions-and-files-to-the-o.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0089-objtool-x86-Add-several-functions-and-files-to-the-o.patch deleted file mode 100644 index 6bdeb9f8..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0089-objtool-x86-Add-several-functions-and-files-to-the-o.patch +++ /dev/null @@ -1,316 +0,0 @@ -From 1a39c1b7d192d62e6d4203ea7acfc35eb3317c48 Mon Sep 17 00:00:00 2001 -From: Josh Poimboeuf <jpoimboe@redhat.com> -Date: Wed, 28 Jun 2017 10:11:06 -0500 -Subject: [PATCH 89/93] objtool, x86: Add several functions and files to the - objtool whitelist - -commit c207aee48037abca71c669cbec407b9891965c34 upstream. - -In preparation for an objtool rewrite which will have broader checks, -whitelist functions and files which cause problems because they do -unusual things with the stack. - -These whitelists serve as a TODO list for which functions and files -don't yet have undwarf unwinder coverage. Eventually most of the -whitelists can be removed in favor of manual CFI hint annotations or -objtool improvements. - -Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> -Cc: Andy Lutomirski <luto@kernel.org> -Cc: Jiri Slaby <jslaby@suse.cz> -Cc: Linus Torvalds <torvalds@linux-foundation.org> -Cc: Peter Zijlstra <peterz@infradead.org> -Cc: Thomas Gleixner <tglx@linutronix.de> -Cc: live-patching@vger.kernel.org -Link: http://lkml.kernel.org/r/7f934a5d707a574bda33ea282e9478e627fb1829.1498659915.git.jpoimboe@redhat.com -Signed-off-by: Ingo Molnar <mingo@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/x86/crypto/Makefile | 2 ++ - arch/x86/crypto/sha1-mb/Makefile | 2 ++ - arch/x86/crypto/sha256-mb/Makefile | 2 ++ - arch/x86/kernel/Makefile | 1 + - arch/x86/kernel/acpi/Makefile | 2 ++ - arch/x86/kernel/kprobes/opt.c | 9 ++++++++- - arch/x86/kernel/reboot.c | 2 ++ - arch/x86/kvm/svm.c | 2 ++ - arch/x86/kvm/vmx.c | 3 +++ - arch/x86/lib/msr-reg.S | 8 ++++---- - arch/x86/net/Makefile | 2 ++ - arch/x86/platform/efi/Makefile | 1 + - arch/x86/power/Makefile | 2 ++ - arch/x86/xen/Makefile | 3 +++ - kernel/kexec_core.c | 4 +++- - 15 files changed, 39 insertions(+), 6 deletions(-) - -diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile -index 34b3fa2..9e32d40 100644 ---- a/arch/x86/crypto/Makefile -+++ b/arch/x86/crypto/Makefile -@@ -2,6 +2,8 @@ - # Arch-specific CryptoAPI modules. - # - -+OBJECT_FILES_NON_STANDARD := y -+ - avx_supported := $(call as-instr,vpxor %xmm0$(comma)%xmm0$(comma)%xmm0,yes,no) - avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ - $(comma)4)$(comma)%ymm2,yes,no) -diff --git a/arch/x86/crypto/sha1-mb/Makefile b/arch/x86/crypto/sha1-mb/Makefile -index 2f87563..2e14acc 100644 ---- a/arch/x86/crypto/sha1-mb/Makefile -+++ b/arch/x86/crypto/sha1-mb/Makefile -@@ -2,6 +2,8 @@ - # Arch-specific CryptoAPI modules. - # - -+OBJECT_FILES_NON_STANDARD := y -+ - avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ - $(comma)4)$(comma)%ymm2,yes,no) - ifeq ($(avx2_supported),yes) -diff --git a/arch/x86/crypto/sha256-mb/Makefile b/arch/x86/crypto/sha256-mb/Makefile -index 41089e7..45b4fca 100644 ---- a/arch/x86/crypto/sha256-mb/Makefile -+++ b/arch/x86/crypto/sha256-mb/Makefile -@@ -2,6 +2,8 @@ - # Arch-specific CryptoAPI modules. - # - -+OBJECT_FILES_NON_STANDARD := y -+ - avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ - $(comma)4)$(comma)%ymm2,yes,no) - ifeq ($(avx2_supported),yes) -diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile -index 79076d7..4c9c615 100644 ---- a/arch/x86/kernel/Makefile -+++ b/arch/x86/kernel/Makefile -@@ -29,6 +29,7 @@ OBJECT_FILES_NON_STANDARD_head_$(BITS).o := y - OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o := y - OBJECT_FILES_NON_STANDARD_mcount_$(BITS).o := y - OBJECT_FILES_NON_STANDARD_test_nx.o := y -+OBJECT_FILES_NON_STANDARD_paravirt_patch_$(BITS).o := y - - # If instrumentation of this dir is enabled, boot hangs during first second. - # Probably could be more selective here, but note that files related to irqs, -diff --git a/arch/x86/kernel/acpi/Makefile b/arch/x86/kernel/acpi/Makefile -index 26b78d8..85a9e17 100644 ---- a/arch/x86/kernel/acpi/Makefile -+++ b/arch/x86/kernel/acpi/Makefile -@@ -1,3 +1,5 @@ -+OBJECT_FILES_NON_STANDARD_wakeup_$(BITS).o := y -+ - obj-$(CONFIG_ACPI) += boot.o - obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup_$(BITS).o - obj-$(CONFIG_ACPI_APEI) += apei.o -diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c -index 90f8cd6..6a7b428 100644 ---- a/arch/x86/kernel/kprobes/opt.c -+++ b/arch/x86/kernel/kprobes/opt.c -@@ -28,6 +28,7 @@ - #include <linux/kdebug.h> - #include <linux/kallsyms.h> - #include <linux/ftrace.h> -+#include <linux/frame.h> - - #include <asm/text-patching.h> - #include <asm/cacheflush.h> -@@ -91,6 +92,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val) - } - - asm ( -+ "optprobe_template_func:\n" - ".global optprobe_template_entry\n" - "optprobe_template_entry:\n" - #ifdef CONFIG_X86_64 -@@ -128,7 +130,12 @@ asm ( - " popf\n" - #endif - ".global optprobe_template_end\n" -- "optprobe_template_end:\n"); -+ "optprobe_template_end:\n" -+ ".type optprobe_template_func, @function\n" -+ ".size optprobe_template_func, .-optprobe_template_func\n"); -+ -+void optprobe_template_func(void); -+STACK_FRAME_NON_STANDARD(optprobe_template_func); - - #define TMPL_MOVE_IDX \ - ((long)&optprobe_template_val - (long)&optprobe_template_entry) -diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c -index e244c19..acca20d 100644 ---- a/arch/x86/kernel/reboot.c -+++ b/arch/x86/kernel/reboot.c -@@ -9,6 +9,7 @@ - #include <linux/sched.h> - #include <linux/tboot.h> - #include <linux/delay.h> -+#include <linux/frame.h> - #include <acpi/reboot.h> - #include <asm/io.h> - #include <asm/apic.h> -@@ -123,6 +124,7 @@ void __noreturn machine_real_restart(unsigned int type) - #ifdef CONFIG_APM_MODULE - EXPORT_SYMBOL(machine_real_restart); - #endif -+STACK_FRAME_NON_STANDARD(machine_real_restart); - - /* - * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot -diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c -index c60d8fc..2672102 100644 ---- a/arch/x86/kvm/svm.c -+++ b/arch/x86/kvm/svm.c -@@ -36,6 +36,7 @@ - #include <linux/slab.h> - #include <linux/amd-iommu.h> - #include <linux/hashtable.h> -+#include <linux/frame.h> - - #include <asm/apic.h> - #include <asm/perf_event.h> -@@ -5099,6 +5100,7 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) - - mark_all_clean(svm->vmcb); - } -+STACK_FRAME_NON_STANDARD(svm_vcpu_run); - - static void svm_set_cr3(struct kvm_vcpu *vcpu, unsigned long root) - { -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index 9307c0d..d39062c 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -33,6 +33,7 @@ - #include <linux/slab.h> - #include <linux/tboot.h> - #include <linux/hrtimer.h> -+#include <linux/frame.h> - #include <linux/nospec.h> - #include "kvm_cache_regs.h" - #include "x86.h" -@@ -8680,6 +8681,7 @@ static void vmx_handle_external_intr(struct kvm_vcpu *vcpu) - ); - } - } -+STACK_FRAME_NON_STANDARD(vmx_handle_external_intr); - - static bool vmx_has_emulated_msr(int index) - { -@@ -9120,6 +9122,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) - vmx_recover_nmi_blocking(vmx); - vmx_complete_interrupts(vmx); - } -+STACK_FRAME_NON_STANDARD(vmx_vcpu_run); - - static void vmx_load_vmcs01(struct kvm_vcpu *vcpu) - { -diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S -index c815564..10ffa7e 100644 ---- a/arch/x86/lib/msr-reg.S -+++ b/arch/x86/lib/msr-reg.S -@@ -13,14 +13,14 @@ - .macro op_safe_regs op - ENTRY(\op\()_safe_regs) - pushq %rbx -- pushq %rbp -+ pushq %r12 - movq %rdi, %r10 /* Save pointer */ - xorl %r11d, %r11d /* Return value */ - movl (%rdi), %eax - movl 4(%rdi), %ecx - movl 8(%rdi), %edx - movl 12(%rdi), %ebx -- movl 20(%rdi), %ebp -+ movl 20(%rdi), %r12d - movl 24(%rdi), %esi - movl 28(%rdi), %edi - 1: \op -@@ -29,10 +29,10 @@ ENTRY(\op\()_safe_regs) - movl %ecx, 4(%r10) - movl %edx, 8(%r10) - movl %ebx, 12(%r10) -- movl %ebp, 20(%r10) -+ movl %r12d, 20(%r10) - movl %esi, 24(%r10) - movl %edi, 28(%r10) -- popq %rbp -+ popq %r12 - popq %rbx - ret - 3: -diff --git a/arch/x86/net/Makefile b/arch/x86/net/Makefile -index 90568c3..fefb4b6 100644 ---- a/arch/x86/net/Makefile -+++ b/arch/x86/net/Makefile -@@ -1,4 +1,6 @@ - # - # Arch-specific network modules - # -+OBJECT_FILES_NON_STANDARD_bpf_jit.o += y -+ - obj-$(CONFIG_BPF_JIT) += bpf_jit.o bpf_jit_comp.o -diff --git a/arch/x86/platform/efi/Makefile b/arch/x86/platform/efi/Makefile -index 066619b..7a25502 100644 ---- a/arch/x86/platform/efi/Makefile -+++ b/arch/x86/platform/efi/Makefile -@@ -1,4 +1,5 @@ - OBJECT_FILES_NON_STANDARD_efi_thunk_$(BITS).o := y -+OBJECT_FILES_NON_STANDARD_efi_stub_$(BITS).o := y - - obj-$(CONFIG_EFI) += quirks.o efi.o efi_$(BITS).o efi_stub_$(BITS).o - obj-$(CONFIG_ACPI_BGRT) += efi-bgrt.o -diff --git a/arch/x86/power/Makefile b/arch/x86/power/Makefile -index a6a198c..0504187 100644 ---- a/arch/x86/power/Makefile -+++ b/arch/x86/power/Makefile -@@ -1,3 +1,5 @@ -+OBJECT_FILES_NON_STANDARD_hibernate_asm_$(BITS).o := y -+ - # __restore_processor_state() restores %gs after S3 resume and so should not - # itself be stack-protected - nostackp := $(call cc-option, -fno-stack-protector) -diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile -index e47e527..4a54059 100644 ---- a/arch/x86/xen/Makefile -+++ b/arch/x86/xen/Makefile -@@ -1,3 +1,6 @@ -+OBJECT_FILES_NON_STANDARD_xen-asm_$(BITS).o := y -+OBJECT_FILES_NON_STANDARD_xen-pvh.o := y -+ - ifdef CONFIG_FUNCTION_TRACER - # Do not profile debug and lowlevel utilities - CFLAGS_REMOVE_spinlock.o = -pg -diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c -index 5616755..f5ab72e 100644 ---- a/kernel/kexec_core.c -+++ b/kernel/kexec_core.c -@@ -38,6 +38,7 @@ - #include <linux/syscore_ops.h> - #include <linux/compiler.h> - #include <linux/hugetlb.h> -+#include <linux/frame.h> - - #include <asm/page.h> - #include <asm/sections.h> -@@ -878,7 +879,7 @@ int kexec_load_disabled; - * only when panic_cpu holds the current CPU number; this is the only CPU - * which processes crash_kexec routines. - */ --void __crash_kexec(struct pt_regs *regs) -+void __noclone __crash_kexec(struct pt_regs *regs) - { - /* Take the kexec_mutex here to prevent sys_kexec_load - * running on one cpu from replacing the crash kernel -@@ -900,6 +901,7 @@ void __crash_kexec(struct pt_regs *regs) - mutex_unlock(&kexec_mutex); - } - } -+STACK_FRAME_NON_STANDARD(__crash_kexec); - - void crash_kexec(struct pt_regs *regs) - { --- -2.7.4 - |