Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Pull x86 fixes from Ingo Molnar:
"A KVM guest fix, and a kdump kernel relocation errors fix"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/timer: Force PIT initialization when !X86_FEATURE_ARAT
x86/purgatory: Change compiler flags from -mcmodel=kernel to -mcmodel=large to fix kexec relocation errors

+23 -16
+4
arch/x86/kernel/apic/apic.c
··· 834 834 if (!boot_cpu_has(X86_FEATURE_APIC)) 835 835 return true; 836 836 837 + /* Virt guests may lack ARAT, but still have DEADLINE */ 838 + if (!boot_cpu_has(X86_FEATURE_ARAT)) 839 + return true; 840 + 837 841 /* Deadline timer is based on TSC so no further PIT action required */ 838 842 if (boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) 839 843 return false;
+19 -16
arch/x86/purgatory/Makefile
··· 18 18 KASAN_SANITIZE := n 19 19 KCOV_INSTRUMENT := n 20 20 21 + # These are adjustments to the compiler flags used for objects that 22 + # make up the standalone purgatory.ro 23 + 24 + PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel 25 + PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss 26 + 21 27 # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That 22 28 # in turn leaves some undefined symbols like __fentry__ in purgatory and not 23 29 # sure how to relocate those. 24 30 ifdef CONFIG_FUNCTION_TRACER 25 - CFLAGS_REMOVE_sha256.o += $(CC_FLAGS_FTRACE) 26 - CFLAGS_REMOVE_purgatory.o += $(CC_FLAGS_FTRACE) 27 - CFLAGS_REMOVE_string.o += $(CC_FLAGS_FTRACE) 28 - CFLAGS_REMOVE_kexec-purgatory.o += $(CC_FLAGS_FTRACE) 31 + PURGATORY_CFLAGS_REMOVE += $(CC_FLAGS_FTRACE) 29 32 endif 30 33 31 34 ifdef CONFIG_STACKPROTECTOR 32 - CFLAGS_REMOVE_sha256.o += -fstack-protector 33 - CFLAGS_REMOVE_purgatory.o += -fstack-protector 34 - CFLAGS_REMOVE_string.o += -fstack-protector 35 - CFLAGS_REMOVE_kexec-purgatory.o += -fstack-protector 35 + PURGATORY_CFLAGS_REMOVE += -fstack-protector 36 36 endif 37 37 38 38 ifdef CONFIG_STACKPROTECTOR_STRONG 39 - CFLAGS_REMOVE_sha256.o += -fstack-protector-strong 40 - CFLAGS_REMOVE_purgatory.o += -fstack-protector-strong 41 - CFLAGS_REMOVE_string.o += -fstack-protector-strong 42 - CFLAGS_REMOVE_kexec-purgatory.o += -fstack-protector-strong 39 + PURGATORY_CFLAGS_REMOVE += -fstack-protector-strong 43 40 endif 44 41 45 42 ifdef CONFIG_RETPOLINE 46 - CFLAGS_REMOVE_sha256.o += $(RETPOLINE_CFLAGS) 47 - CFLAGS_REMOVE_purgatory.o += $(RETPOLINE_CFLAGS) 48 - CFLAGS_REMOVE_string.o += $(RETPOLINE_CFLAGS) 49 - CFLAGS_REMOVE_kexec-purgatory.o += $(RETPOLINE_CFLAGS) 43 + PURGATORY_CFLAGS_REMOVE += $(RETPOLINE_CFLAGS) 50 44 endif 45 + 46 + CFLAGS_REMOVE_purgatory.o += $(PURGATORY_CFLAGS_REMOVE) 47 + CFLAGS_purgatory.o += $(PURGATORY_CFLAGS) 48 + 49 + CFLAGS_REMOVE_sha256.o += $(PURGATORY_CFLAGS_REMOVE) 50 + CFLAGS_sha256.o += $(PURGATORY_CFLAGS) 51 + 52 + CFLAGS_REMOVE_string.o += $(PURGATORY_CFLAGS_REMOVE) 53 + CFLAGS_string.o += $(PURGATORY_CFLAGS) 51 54 52 55 $(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE 53 56 $(call if_changed,ld)