mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
Misc fixes:
- an old(er) binutils build fix, - a new-GCC build fix, - and a kexec boot environment fix. Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmLuv4URHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1it3A//fGfrzHGtjHraiBy0H1Erlz0dUa4q/r6v xPQVFYteGwL/Ynv2rOJreiEXNhv9pRv0cXXNS5iWh8IcP8IUNw6rfYmgr1aDpXdq WkbJvwouX6JSo3g/CMekKd+Mf7NgA4O1OO65E80c4WJnxgd0AYvr6IxJRLR7X0C7 HwU6p6PmP/RHWT5T170z6sgun+6QdDEYSwFYOhxawL+BJaKEBYnQ0LLQgJazhe7z uVxONQA9OdWBwMzvZygbOuTzc990jCHRPYgvYQhSZ8CUPuVzaa7IB9KUXh6lu93d a7nqM3GlWTowBULY6Xq7gWJaJ7jsVWXjqo8SWVlb6YwoLR9dgGSW5bCGV0rOA6o3 yPjQhIQ9H4NOx126wPcCRBh3osGFjqlWUXVw7W51aNgd7hCvlbpWWmREeI/Pm1Ew WBjQqpf4l0S+0On5FEFaF7swAG3b6KSNSKw7WBmpmTNt5eWOot0EtnjGW75ATpxM +j2fj/1MIZ/Zp+wYaNK/+abM4sXHhYvU9gpPdJslRr+r2AVjy9gCZ/0zuUIVytwC gOdV9KhqzlXPJCTm+py7fBt2qM2P5rKT2HBQYiJwIquB2njI0kjUBOJWXsGQ/F/y hGd6WY8uDuwzzg5JtyfwE6fPGovxL5GCc4w9CYz0DbP0txPYuhMOdkHtAYLyraAj wtdalMt3cT8= =EM/G -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
1612c382ff
@ -11,12 +11,13 @@ CFLAGS_REMOVE_common.o = $(CC_FLAGS_FTRACE)
|
||||
|
||||
CFLAGS_common.o += -fno-stack-protector
|
||||
|
||||
obj-y := entry.o entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o
|
||||
obj-y := entry.o entry_$(BITS).o syscall_$(BITS).o
|
||||
obj-y += common.o
|
||||
|
||||
obj-y += vdso/
|
||||
obj-y += vsyscall/
|
||||
|
||||
obj-$(CONFIG_PREEMPTION) += thunk_$(BITS).o
|
||||
obj-$(CONFIG_IA32_EMULATION) += entry_64_compat.o syscall_32.o
|
||||
obj-$(CONFIG_X86_X32_ABI) += syscall_x32.o
|
||||
|
||||
|
@ -29,10 +29,8 @@ SYM_CODE_START_NOALIGN(\name)
|
||||
SYM_CODE_END(\name)
|
||||
.endm
|
||||
|
||||
#ifdef CONFIG_PREEMPTION
|
||||
THUNK preempt_schedule_thunk, preempt_schedule
|
||||
THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace
|
||||
EXPORT_SYMBOL(preempt_schedule_thunk)
|
||||
EXPORT_SYMBOL(preempt_schedule_notrace_thunk)
|
||||
#endif
|
||||
|
||||
|
@ -31,14 +31,11 @@ SYM_FUNC_END(\name)
|
||||
_ASM_NOKPROBE(\name)
|
||||
.endm
|
||||
|
||||
#ifdef CONFIG_PREEMPTION
|
||||
THUNK preempt_schedule_thunk, preempt_schedule
|
||||
THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace
|
||||
EXPORT_SYMBOL(preempt_schedule_thunk)
|
||||
EXPORT_SYMBOL(preempt_schedule_notrace_thunk)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PREEMPTION
|
||||
SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore)
|
||||
popq %r11
|
||||
popq %r10
|
||||
@ -53,4 +50,3 @@ SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore)
|
||||
RET
|
||||
_ASM_NOKPROBE(__thunk_restore)
|
||||
SYM_CODE_END(__thunk_restore)
|
||||
#endif
|
||||
|
@ -1216,22 +1216,23 @@ static void bus_lock_init(void)
|
||||
{
|
||||
u64 val;
|
||||
|
||||
/*
|
||||
* Warn and fatal are handled by #AC for split lock if #AC for
|
||||
* split lock is supported.
|
||||
*/
|
||||
if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT) ||
|
||||
(boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) &&
|
||||
(sld_state == sld_warn || sld_state == sld_fatal)) ||
|
||||
sld_state == sld_off)
|
||||
if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT))
|
||||
return;
|
||||
|
||||
/*
|
||||
* Enable #DB for bus lock. All bus locks are handled in #DB except
|
||||
* split locks are handled in #AC in the fatal case.
|
||||
*/
|
||||
rdmsrl(MSR_IA32_DEBUGCTLMSR, val);
|
||||
val |= DEBUGCTLMSR_BUS_LOCK_DETECT;
|
||||
|
||||
if ((boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) &&
|
||||
(sld_state == sld_warn || sld_state == sld_fatal)) ||
|
||||
sld_state == sld_off) {
|
||||
/*
|
||||
* Warn and fatal are handled by #AC for split lock if #AC for
|
||||
* split lock is supported.
|
||||
*/
|
||||
val &= ~DEBUGCTLMSR_BUS_LOCK_DETECT;
|
||||
} else {
|
||||
val |= DEBUGCTLMSR_BUS_LOCK_DETECT;
|
||||
}
|
||||
|
||||
wrmsrl(MSR_IA32_DEBUGCTLMSR, val);
|
||||
}
|
||||
|
||||
|
@ -867,7 +867,7 @@ void debug_cpumask_set_cpu(int cpu, int node, bool enable)
|
||||
return;
|
||||
}
|
||||
mask = node_to_cpumask_map[node];
|
||||
if (!mask) {
|
||||
if (!cpumask_available(mask)) {
|
||||
pr_err("node_to_cpumask_map[%i] NULL\n", node);
|
||||
dump_stack();
|
||||
return;
|
||||
@ -913,7 +913,7 @@ const struct cpumask *cpumask_of_node(int node)
|
||||
dump_stack();
|
||||
return cpu_none_mask;
|
||||
}
|
||||
if (node_to_cpumask_map[node] == NULL) {
|
||||
if (!cpumask_available(node_to_cpumask_map[node])) {
|
||||
printk(KERN_WARNING
|
||||
"cpumask_of_node(%d): no node_to_cpumask_map!\n",
|
||||
node);
|
||||
|
@ -28,8 +28,9 @@ else
|
||||
|
||||
obj-y += syscalls_64.o vdso/
|
||||
|
||||
subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o ../entry/thunk_64.o \
|
||||
subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o \
|
||||
../lib/memmove_64.o ../lib/memset_64.o
|
||||
subarch-$(CONFIG_PREEMPTION) += ../entry/thunk_64.o
|
||||
|
||||
endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user