Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c38c04c6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:
 "Misc fixes: three build fixes, an unwinder fix and a microcode loader
  fix"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/microcode/AMD: Fix more fallout from CONFIG_RANDOMIZE_MEMORY=y
  x86: Fix export for mcount and __fentry__
  x86/quirks: Hide maybe-uninitialized warning
  x86/build: Fix build with older GCC versions
  x86/unwind: Fix empty stack dereference in guess unwinder
parents a8006bd9 1c27f646
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -5,8 +5,8 @@
OBJECT_FILES_NON_STANDARD_entry_$(BITS).o   := y
OBJECT_FILES_NON_STANDARD_entry_$(BITS).o   := y
OBJECT_FILES_NON_STANDARD_entry_64_compat.o := y
OBJECT_FILES_NON_STANDARD_entry_64_compat.o := y


CFLAGS_syscall_64.o		+= -Wno-override-init
CFLAGS_syscall_64.o		+= $(call cc-option,-Wno-override-init,)
CFLAGS_syscall_32.o		+= -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				:= entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o
obj-y				+= common.o
obj-y				+= common.o


+1 −1
Original line number Original line Diff line number Diff line
@@ -429,7 +429,7 @@ int __init save_microcode_in_initrd_amd(void)
	 * We need the physical address of the container for both bitness since
	 * We need the physical address of the container for both bitness since
	 * boot_params.hdr.ramdisk_image is a physical address.
	 * boot_params.hdr.ramdisk_image is a physical address.
	 */
	 */
	cont    = __pa(container);
	cont    = __pa_nodebug(container);
	cont_va = container;
	cont_va = container;
#endif
#endif


+2 −1
Original line number Original line Diff line number Diff line
@@ -18,8 +18,10 @@


#ifdef CC_USING_FENTRY
#ifdef CC_USING_FENTRY
# define function_hook	__fentry__
# define function_hook	__fentry__
EXPORT_SYMBOL(__fentry__)
#else
#else
# define function_hook	mcount
# define function_hook	mcount
EXPORT_SYMBOL(mcount)
#endif
#endif


/* All cases save the original rbp (8 bytes) */
/* All cases save the original rbp (8 bytes) */
@@ -295,7 +297,6 @@ trace:
	jmp fgraph_trace
	jmp fgraph_trace
END(function_hook)
END(function_hook)
#endif /* CONFIG_DYNAMIC_FTRACE */
#endif /* CONFIG_DYNAMIC_FTRACE */
EXPORT_SYMBOL(function_hook)
#endif /* CONFIG_FUNCTION_TRACER */
#endif /* CONFIG_FUNCTION_TRACER */


#ifdef CONFIG_FUNCTION_GRAPH_TRACER
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+1 −2
Original line number Original line Diff line number Diff line
@@ -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,
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F3,
			amd_disable_seq_and_redirect_scrub);
			amd_disable_seq_and_redirect_scrub);


#endif

#if defined(CONFIG_X86_64) && defined(CONFIG_X86_MCE)
#if defined(CONFIG_X86_64) && defined(CONFIG_X86_MCE)
#include <linux/jump_label.h>
#include <linux/jump_label.h>
#include <asm/string_64.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, 0x6fc0, quirk_intel_brickland_xeon_ras_cap);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2083, quirk_intel_purley_xeon_ras_cap);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x2083, quirk_intel_purley_xeon_ras_cap);
#endif
#endif
#endif
+8 −1
Original line number Original line Diff line number Diff line
@@ -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,
	get_stack_info(first_frame, state->task, &state->stack_info,
		       &state->stack_mask);
		       &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);
		unwind_next_frame(state);
}
}
EXPORT_SYMBOL_GPL(__unwind_start);
EXPORT_SYMBOL_GPL(__unwind_start);