x86/IRQ: make fixup_irqs() skip unconnected internally used interrupts Since the "Cannot set affinity ..." warning is a one time one, avoid triggering it already at boot time when parking secondary threads and the serial console uses a (still unconnected at that time) PCI IRQ. Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné Acked-by: Andrew Cooper --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2472,8 +2472,20 @@ void fixup_irqs(const cpumask_t *mask, b vector = irq_to_vector(irq); if ( vector >= FIRST_HIPRIORITY_VECTOR && vector <= LAST_HIPRIORITY_VECTOR ) + { cpumask_and(desc->arch.cpu_mask, desc->arch.cpu_mask, mask); + /* + * This can in particular happen when parking secondary threads + * during boot and when the serial console wants to use a PCI IRQ. + */ + if ( desc->handler == &no_irq_type ) + { + spin_unlock(&desc->lock); + continue; + } + } + if ( desc->arch.move_cleanup_count ) { /* The cleanup IPI may have got sent while we were still online. */