diff options
author | Brian Masney <bmasney@redhat.com> | 2020-11-06 20:11:19 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-12-02 08:29:27 +0100 |
commit | 22aaeaeeccaf8c4344bfc7910d797ac1b169e7e6 (patch) | |
tree | 6bf282cac55140b46c977c024d27397bb4222d25 /mm/cma.h | |
parent | 9ef5ed79e5a8ae540ecf911fe651f3cd99a4e075 (diff) | |
download | linux-stable-22aaeaeeccaf8c4344bfc7910d797ac1b169e7e6.tar.gz linux-stable-22aaeaeeccaf8c4344bfc7910d797ac1b169e7e6.tar.bz2 linux-stable-22aaeaeeccaf8c4344bfc7910d797ac1b169e7e6.zip |
x86/xen: don't unbind uninitialized lock_kicker_irq
[ Upstream commit 65cae18882f943215d0505ddc7e70495877308e6 ]
When booting a hyperthreaded system with the kernel parameter
'mitigations=auto,nosmt', the following warning occurs:
WARNING: CPU: 0 PID: 1 at drivers/xen/events/events_base.c:1112 unbind_from_irqhandler+0x4e/0x60
...
Hardware name: Xen HVM domU, BIOS 4.2.amazon 08/24/2006
...
Call Trace:
xen_uninit_lock_cpu+0x28/0x62
xen_hvm_cpu_die+0x21/0x30
takedown_cpu+0x9c/0xe0
? trace_suspend_resume+0x60/0x60
cpuhp_invoke_callback+0x9a/0x530
_cpu_up+0x11a/0x130
cpu_up+0x7e/0xc0
bringup_nonboot_cpus+0x48/0x50
smp_init+0x26/0x79
kernel_init_freeable+0xea/0x229
? rest_init+0xaa/0xaa
kernel_init+0xa/0x106
ret_from_fork+0x35/0x40
The secondary CPUs are not activated with the nosmt mitigations and only
the primary thread on each CPU core is used. In this situation,
xen_hvm_smp_prepare_cpus(), and more importantly xen_init_lock_cpu(), is
not called, so the lock_kicker_irq is not initialized for the secondary
CPUs. Let's fix this by exiting early in xen_uninit_lock_cpu() if the
irq is not set to avoid the warning from above for each secondary CPU.
Signed-off-by: Brian Masney <bmasney@redhat.com>
Link: https://lore.kernel.org/r/20201107011119.631442-1-bmasney@redhat.com
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'mm/cma.h')
0 files changed, 0 insertions, 0 deletions