• Brian Masney's avatar
    x86/xen: don't unbind uninitialized lock_kicker_irq · 65cae188
    Brian Masney authored
    
    
    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: default avatarBrian Masney <bmasney@redhat.com>
    Link: https://lore.kernel.org/r/20201107011119.631442-1-bmasney@redhat.com
    
    Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
    Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    65cae188
spinlock.c 3.76 KB