diff options
| -rw-r--r-- | arch/x86/crypto/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/crypto/sha1-mb/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/crypto/sha256-mb/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/acpi/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/kprobes/opt.c | 9 | ||||
| -rw-r--r-- | arch/x86/kernel/reboot.c | 2 | ||||
| -rw-r--r-- | arch/x86/kvm/svm.c | 2 | ||||
| -rw-r--r-- | arch/x86/kvm/vmx.c | 3 | ||||
| -rw-r--r-- | arch/x86/lib/msr-reg.S | 8 | ||||
| -rw-r--r-- | arch/x86/net/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/platform/efi/Makefile | 1 | ||||
| -rw-r--r-- | arch/x86/power/Makefile | 2 | ||||
| -rw-r--r-- | arch/x86/xen/Makefile | 3 | ||||
| -rw-r--r-- | 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 34b3fa2889d1..9e32d40d71bd 100644 --- a/arch/x86/crypto/Makefile +++ b/arch/x86/crypto/Makefile | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | # Arch-specific CryptoAPI modules. | 2 | # Arch-specific CryptoAPI modules. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | OBJECT_FILES_NON_STANDARD := y | ||
| 6 | |||
| 5 | avx_supported := $(call as-instr,vpxor %xmm0$(comma)%xmm0$(comma)%xmm0,yes,no) | 7 | avx_supported := $(call as-instr,vpxor %xmm0$(comma)%xmm0$(comma)%xmm0,yes,no) |
| 6 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ | 8 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ |
| 7 | $(comma)4)$(comma)%ymm2,yes,no) | 9 | $(comma)4)$(comma)%ymm2,yes,no) |
diff --git a/arch/x86/crypto/sha1-mb/Makefile b/arch/x86/crypto/sha1-mb/Makefile index 2f8756375df5..2e14acc3da25 100644 --- a/arch/x86/crypto/sha1-mb/Makefile +++ b/arch/x86/crypto/sha1-mb/Makefile | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | # Arch-specific CryptoAPI modules. | 2 | # Arch-specific CryptoAPI modules. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | OBJECT_FILES_NON_STANDARD := y | ||
| 6 | |||
| 5 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ | 7 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ |
| 6 | $(comma)4)$(comma)%ymm2,yes,no) | 8 | $(comma)4)$(comma)%ymm2,yes,no) |
| 7 | ifeq ($(avx2_supported),yes) | 9 | ifeq ($(avx2_supported),yes) |
diff --git a/arch/x86/crypto/sha256-mb/Makefile b/arch/x86/crypto/sha256-mb/Makefile index 41089e7c400c..45b4fca6c4a8 100644 --- a/arch/x86/crypto/sha256-mb/Makefile +++ b/arch/x86/crypto/sha256-mb/Makefile | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | # Arch-specific CryptoAPI modules. | 2 | # Arch-specific CryptoAPI modules. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | OBJECT_FILES_NON_STANDARD := y | ||
| 6 | |||
| 5 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ | 7 | avx2_supported := $(call as-instr,vpgatherdd %ymm0$(comma)(%eax$(comma)%ymm1\ |
| 6 | $(comma)4)$(comma)%ymm2,yes,no) | 8 | $(comma)4)$(comma)%ymm2,yes,no) |
| 7 | ifeq ($(avx2_supported),yes) | 9 | ifeq ($(avx2_supported),yes) |
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 4b994232cb57..3c7c419c4e3e 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
| @@ -29,6 +29,7 @@ OBJECT_FILES_NON_STANDARD_head_$(BITS).o := y | |||
| 29 | OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o := y | 29 | OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o := y |
| 30 | OBJECT_FILES_NON_STANDARD_ftrace_$(BITS).o := y | 30 | OBJECT_FILES_NON_STANDARD_ftrace_$(BITS).o := y |
| 31 | OBJECT_FILES_NON_STANDARD_test_nx.o := y | 31 | OBJECT_FILES_NON_STANDARD_test_nx.o := y |
| 32 | OBJECT_FILES_NON_STANDARD_paravirt_patch_$(BITS).o := y | ||
| 32 | 33 | ||
| 33 | # If instrumentation of this dir is enabled, boot hangs during first second. | 34 | # If instrumentation of this dir is enabled, boot hangs during first second. |
| 34 | # Probably could be more selective here, but note that files related to irqs, | 35 | # 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 26b78d86f25a..85a9e17e0dbc 100644 --- a/arch/x86/kernel/acpi/Makefile +++ b/arch/x86/kernel/acpi/Makefile | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | OBJECT_FILES_NON_STANDARD_wakeup_$(BITS).o := y | ||
| 2 | |||
| 1 | obj-$(CONFIG_ACPI) += boot.o | 3 | obj-$(CONFIG_ACPI) += boot.o |
| 2 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup_$(BITS).o | 4 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup_$(BITS).o |
| 3 | obj-$(CONFIG_ACPI_APEI) += apei.o | 5 | obj-$(CONFIG_ACPI_APEI) += apei.o |
diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c index 901c640d152f..69ea0bc1cfa3 100644 --- a/arch/x86/kernel/kprobes/opt.c +++ b/arch/x86/kernel/kprobes/opt.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #include <linux/kdebug.h> | 28 | #include <linux/kdebug.h> |
| 29 | #include <linux/kallsyms.h> | 29 | #include <linux/kallsyms.h> |
| 30 | #include <linux/ftrace.h> | 30 | #include <linux/ftrace.h> |
| 31 | #include <linux/frame.h> | ||
| 31 | 32 | ||
| 32 | #include <asm/text-patching.h> | 33 | #include <asm/text-patching.h> |
| 33 | #include <asm/cacheflush.h> | 34 | #include <asm/cacheflush.h> |
| @@ -94,6 +95,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val) | |||
| 94 | } | 95 | } |
| 95 | 96 | ||
| 96 | asm ( | 97 | asm ( |
| 98 | "optprobe_template_func:\n" | ||
| 97 | ".global optprobe_template_entry\n" | 99 | ".global optprobe_template_entry\n" |
| 98 | "optprobe_template_entry:\n" | 100 | "optprobe_template_entry:\n" |
| 99 | #ifdef CONFIG_X86_64 | 101 | #ifdef CONFIG_X86_64 |
| @@ -131,7 +133,12 @@ asm ( | |||
| 131 | " popf\n" | 133 | " popf\n" |
| 132 | #endif | 134 | #endif |
| 133 | ".global optprobe_template_end\n" | 135 | ".global optprobe_template_end\n" |
| 134 | "optprobe_template_end:\n"); | 136 | "optprobe_template_end:\n" |
| 137 | ".type optprobe_template_func, @function\n" | ||
| 138 | ".size optprobe_template_func, .-optprobe_template_func\n"); | ||
| 139 | |||
| 140 | void optprobe_template_func(void); | ||
| 141 | STACK_FRAME_NON_STANDARD(optprobe_template_func); | ||
| 135 | 142 | ||
| 136 | #define TMPL_MOVE_IDX \ | 143 | #define TMPL_MOVE_IDX \ |
| 137 | ((long)&optprobe_template_val - (long)&optprobe_template_entry) | 144 | ((long)&optprobe_template_val - (long)&optprobe_template_entry) |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 2544700a2a87..67393fc88353 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
| 10 | #include <linux/tboot.h> | 10 | #include <linux/tboot.h> |
| 11 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
| 12 | #include <linux/frame.h> | ||
| 12 | #include <acpi/reboot.h> | 13 | #include <acpi/reboot.h> |
| 13 | #include <asm/io.h> | 14 | #include <asm/io.h> |
| 14 | #include <asm/apic.h> | 15 | #include <asm/apic.h> |
| @@ -123,6 +124,7 @@ void __noreturn machine_real_restart(unsigned int type) | |||
| 123 | #ifdef CONFIG_APM_MODULE | 124 | #ifdef CONFIG_APM_MODULE |
| 124 | EXPORT_SYMBOL(machine_real_restart); | 125 | EXPORT_SYMBOL(machine_real_restart); |
| 125 | #endif | 126 | #endif |
| 127 | STACK_FRAME_NON_STANDARD(machine_real_restart); | ||
| 126 | 128 | ||
| 127 | /* | 129 | /* |
| 128 | * Some Apple MacBook and MacBookPro's needs reboot=p to be able to reboot | 130 | * 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 ba9891ac5c56..33460fcdeef9 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | #include <linux/slab.h> | 36 | #include <linux/slab.h> |
| 37 | #include <linux/amd-iommu.h> | 37 | #include <linux/amd-iommu.h> |
| 38 | #include <linux/hashtable.h> | 38 | #include <linux/hashtable.h> |
| 39 | #include <linux/frame.h> | ||
| 39 | 40 | ||
| 40 | #include <asm/apic.h> | 41 | #include <asm/apic.h> |
| 41 | #include <asm/perf_event.h> | 42 | #include <asm/perf_event.h> |
| @@ -4906,6 +4907,7 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) | |||
| 4906 | 4907 | ||
| 4907 | mark_all_clean(svm->vmcb); | 4908 | mark_all_clean(svm->vmcb); |
| 4908 | } | 4909 | } |
| 4910 | STACK_FRAME_NON_STANDARD(svm_vcpu_run); | ||
| 4909 | 4911 | ||
| 4910 | static void svm_set_cr3(struct kvm_vcpu *vcpu, unsigned long root) | 4912 | static void svm_set_cr3(struct kvm_vcpu *vcpu, unsigned long root) |
| 4911 | { | 4913 | { |
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index ca5d2b93385c..1b469b6c762f 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/slab.h> | 33 | #include <linux/slab.h> |
| 34 | #include <linux/tboot.h> | 34 | #include <linux/tboot.h> |
| 35 | #include <linux/hrtimer.h> | 35 | #include <linux/hrtimer.h> |
| 36 | #include <linux/frame.h> | ||
| 36 | #include "kvm_cache_regs.h" | 37 | #include "kvm_cache_regs.h" |
| 37 | #include "x86.h" | 38 | #include "x86.h" |
| 38 | 39 | ||
| @@ -8652,6 +8653,7 @@ static void vmx_handle_external_intr(struct kvm_vcpu *vcpu) | |||
| 8652 | ); | 8653 | ); |
| 8653 | } | 8654 | } |
| 8654 | } | 8655 | } |
| 8656 | STACK_FRAME_NON_STANDARD(vmx_handle_external_intr); | ||
| 8655 | 8657 | ||
| 8656 | static bool vmx_has_high_real_mode_segbase(void) | 8658 | static bool vmx_has_high_real_mode_segbase(void) |
| 8657 | { | 8659 | { |
| @@ -9028,6 +9030,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) | |||
| 9028 | vmx_recover_nmi_blocking(vmx); | 9030 | vmx_recover_nmi_blocking(vmx); |
| 9029 | vmx_complete_interrupts(vmx); | 9031 | vmx_complete_interrupts(vmx); |
| 9030 | } | 9032 | } |
| 9033 | STACK_FRAME_NON_STANDARD(vmx_vcpu_run); | ||
| 9031 | 9034 | ||
| 9032 | static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs) | 9035 | static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs) |
| 9033 | { | 9036 | { |
diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S index c81556409bbb..10ffa7e8519f 100644 --- a/arch/x86/lib/msr-reg.S +++ b/arch/x86/lib/msr-reg.S | |||
| @@ -13,14 +13,14 @@ | |||
| 13 | .macro op_safe_regs op | 13 | .macro op_safe_regs op |
| 14 | ENTRY(\op\()_safe_regs) | 14 | ENTRY(\op\()_safe_regs) |
| 15 | pushq %rbx | 15 | pushq %rbx |
| 16 | pushq %rbp | 16 | pushq %r12 |
| 17 | movq %rdi, %r10 /* Save pointer */ | 17 | movq %rdi, %r10 /* Save pointer */ |
| 18 | xorl %r11d, %r11d /* Return value */ | 18 | xorl %r11d, %r11d /* Return value */ |
| 19 | movl (%rdi), %eax | 19 | movl (% |
