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 tag 'x86-urgent-2022-08-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Ingo Molnar:

- build fix for old(er) binutils

- build fix for new GCC

- kexec boot environment fix

* tag 'x86-urgent-2022-08-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y
x86/numa: Use cpumask_available instead of hardcoded NULL check
x86/bus_lock: Don't assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to be zero

+20 -23
+2 -1
arch/x86/entry/Makefile
··· 11 11 12 12 CFLAGS_common.o += -fno-stack-protector 13 13 14 - obj-y := entry.o entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o 14 + obj-y := entry.o entry_$(BITS).o syscall_$(BITS).o 15 15 obj-y += common.o 16 16 17 17 obj-y += vdso/ 18 18 obj-y += vsyscall/ 19 19 20 + obj-$(CONFIG_PREEMPTION) += thunk_$(BITS).o 20 21 obj-$(CONFIG_IA32_EMULATION) += entry_64_compat.o syscall_32.o 21 22 obj-$(CONFIG_X86_X32_ABI) += syscall_x32.o 22 23
-2
arch/x86/entry/thunk_32.S
··· 29 29 SYM_CODE_END(\name) 30 30 .endm 31 31 32 - #ifdef CONFIG_PREEMPTION 33 32 THUNK preempt_schedule_thunk, preempt_schedule 34 33 THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace 35 34 EXPORT_SYMBOL(preempt_schedule_thunk) 36 35 EXPORT_SYMBOL(preempt_schedule_notrace_thunk) 37 - #endif 38 36
-4
arch/x86/entry/thunk_64.S
··· 31 31 _ASM_NOKPROBE(\name) 32 32 .endm 33 33 34 - #ifdef CONFIG_PREEMPTION 35 34 THUNK preempt_schedule_thunk, preempt_schedule 36 35 THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace 37 36 EXPORT_SYMBOL(preempt_schedule_thunk) 38 37 EXPORT_SYMBOL(preempt_schedule_notrace_thunk) 39 - #endif 40 38 41 - #ifdef CONFIG_PREEMPTION 42 39 SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore) 43 40 popq %r11 44 41 popq %r10 ··· 50 53 RET 51 54 _ASM_NOKPROBE(__thunk_restore) 52 55 SYM_CODE_END(__thunk_restore) 53 - #endif
+14 -13
arch/x86/kernel/cpu/intel.c
··· 1216 1216 { 1217 1217 u64 val; 1218 1218 1219 - /* 1220 - * Warn and fatal are handled by #AC for split lock if #AC for 1221 - * split lock is supported. 1222 - */ 1223 - if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT) || 1224 - (boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) && 1225 - (sld_state == sld_warn || sld_state == sld_fatal)) || 1226 - sld_state == sld_off) 1219 + if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT)) 1227 1220 return; 1228 1221 1229 - /* 1230 - * Enable #DB for bus lock. All bus locks are handled in #DB except 1231 - * split locks are handled in #AC in the fatal case. 1232 - */ 1233 1222 rdmsrl(MSR_IA32_DEBUGCTLMSR, val); 1234 - val |= DEBUGCTLMSR_BUS_LOCK_DETECT; 1223 + 1224 + if ((boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) && 1225 + (sld_state == sld_warn || sld_state == sld_fatal)) || 1226 + sld_state == sld_off) { 1227 + /* 1228 + * Warn and fatal are handled by #AC for split lock if #AC for 1229 + * split lock is supported. 1230 + */ 1231 + val &= ~DEBUGCTLMSR_BUS_LOCK_DETECT; 1232 + } else { 1233 + val |= DEBUGCTLMSR_BUS_LOCK_DETECT; 1234 + } 1235 + 1235 1236 wrmsrl(MSR_IA32_DEBUGCTLMSR, val); 1236 1237 } 1237 1238
+2 -2
arch/x86/mm/numa.c
··· 867 867 return; 868 868 } 869 869 mask = node_to_cpumask_map[node]; 870 - if (!mask) { 870 + if (!cpumask_available(mask)) { 871 871 pr_err("node_to_cpumask_map[%i] NULL\n", node); 872 872 dump_stack(); 873 873 return; ··· 913 913 dump_stack(); 914 914 return cpu_none_mask; 915 915 } 916 - if (node_to_cpumask_map[node] == NULL) { 916 + if (!cpumask_available(node_to_cpumask_map[node])) { 917 917 printk(KERN_WARNING 918 918 "cpumask_of_node(%d): no node_to_cpumask_map!\n", 919 919 node);
+2 -1
arch/x86/um/Makefile
··· 28 28 29 29 obj-y += syscalls_64.o vdso/ 30 30 31 - subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o ../entry/thunk_64.o \ 31 + subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o \ 32 32 ../lib/memmove_64.o ../lib/memset_64.o 33 + subarch-$(CONFIG_PREEMPTION) += ../entry/thunk_64.o 33 34 34 35 endif 35 36