x86 fixes
Subsystems (5)
Linus,
Please pull the latest x86-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus
# HEAD: 1c27f646b18fb56308dff82784ca61951bad0b48 x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
Misc fixes: three build fixes, an unwinder fix and a microcode loader fix.
Thanks,
Ingo
------------------>
Arnd Bergmann (1):
x86/quirks: Hide maybe-uninitialized warning
Borislav Petkov (1):
x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
Jan Beulich (1):
x86/build: Fix build with older GCC versions
Josh Poimboeuf (1):
x86/unwind: Fix empty stack dereference in guess unwinder
Steven Rostedt (1):
x86: Fix export for mcount and __fentry__
arch/x86/entry/Makefile | 4 ++-- arch/x86/kernel/cpu/microcode/amd.c | 2 +- arch/x86/kernel/mcount_64.S | 3 ++- arch/x86/kernel/quirks.c | 3 +-- arch/x86/kernel/unwind_guess.c | 9 ++++++++- 5 files changed, 14 insertions(+), 7 deletions(-)
arch/x86/entry/Makefile +2 -2
@@ -5,8 +5,8 @@ OBJECT_FILES_NON_STANDARD_entry_$(BITS).o := y OBJECT_FILES_NON_STANDARD_entry_64_compat.o := y -CFLAGS_syscall_64.o += -Wno-override-init -CFLAGS_syscall_32.o += -Wno-override-init +CFLAGS_syscall_64.o += $(call cc-option,-Wno-override-init,) +CFLAGS_syscall_32.o += $(call cc-option,-Wno-override-init,) obj-y := entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o obj-y += common.o
arch/x86/kernel/cpu/microcode/amd.c +1 -1
@@ -429,7 +429,7 @@ int __init save_microcode_in_initrd_amd(void)* We need the physical address of the container for both bitness since * boot_params.hdr.ramdisk_image is a physical address. */ - cont =__pa (container); + cont =__pa_nodebug (container); cont_va = container;#endif
arch/x86/kernel/mcount_64.S +2 -1
@@ -18,8 +18,10 @@ #ifdef CC_USING_FENTRY # define function_hook __fentry__ +EXPORT_SYMBOL(__fentry__) #else # define function_hook mcount +EXPORT_SYMBOL(mcount) #endif /* All cases save the original rbp (8 bytes) */
@@ -295,7 +297,6 @@ GLOBAL(ftrace_stub) jmp fgraph_trace END(function_hook) #endif /* CONFIG_DYNAMIC_FTRACE */ -EXPORT_SYMBOL(function_hook) #endif /* CONFIG_FUNCTION_TRACER */ #ifdef CONFIG_FUNCTION_GRAPH_TRACER
arch/x86/kernel/quirks.c +1 -2
@@ -625,8 +625,6 @@ static void amd_disable_seq_and_redirect_scrub(struct pci_dev *dev)DECLARE_PCI_FIXUP_FINAL (PCI_VENDOR_ID_AMD ,PCI_DEVICE_ID_AMD_16H_NB_F3 , amd_disable_seq_and_redirect_scrub); -#endif -#if defined(CONFIG_X86_64 ) && defined(CONFIG_X86_MCE )#include <linux/jump_label.h> #include <asm/string_64.h>
@@ -657,3 +655,4 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2fc0, quirk_intel_brickland_xeon_DECLARE_PCI_FIXUP_EARLY (PCI_VENDOR_ID_INTEL ,0x6fc0 , quirk_intel_brickland_xeon_ras_cap);DECLARE_PCI_FIXUP_EARLY (PCI_VENDOR_ID_INTEL ,0x2083 , quirk_intel_purley_xeon_ras_cap);#endif +#endif
arch/x86/kernel/unwind_guess.c +8 -1
@@ -47,7 +47,14 @@ void __unwind_start(struct unwind_state *state, struct task_struct *task,get_stack_info (first_frame, state->task, &state->stack_info, &state->stack_mask); -if (!__kernel_text_address (*first_frame)) +/* +* The caller can provide the address of the first frame directly +* (first_frame) or indirectly (regs->sp) to indicate which stack frame +* to start unwinding at. Skip ahead until we reach it. +*/ +if (!unwind_done (state) && + (!on_stack (&state->stack_info, first_frame,sizeof (long )) || + !__kernel_text_address (*first_frame)))unwind_next_frame (state); }EXPORT_SYMBOL_GPL (__unwind_start);