Re: [patch 32/55] x86/irq: Restructure fixup_irqs()

From: Thomas Gleixner
Date: Tue Jun 20 2017 - 17:28:49 EST


On Tue, 20 Jun 2017, Keith Busch wrote:
> On Tue, Jun 20, 2017 at 01:37:32AM +0200, Thomas Gleixner wrote:
> > @@ -441,18 +440,27 @@ void fixup_irqs(void)
> >
> > for_each_irq_desc(irq, desc) {
> > const struct cpumask *affinity;
> > - int break_affinity = 0;
> > - int set_affinity = 1;
> > + bool break_affinity = false;
> >
> > if (!desc)
> > continue;
> > - if (irq == 2)
> > - continue;
> >
> > /* interrupt's are disabled at this point */
> > raw_spin_lock(&desc->lock);
> >
> > data = irq_desc_get_irq_data(desc);
> > + chip = irq_data_get_irq_chip(data);
> > + /*
> > + * The interrupt descriptor might have been cleaned up
> > + * already, but it is not yet removed from the radix
> > + * tree. If the chip does not have an affinity setter,
> > + * nothing to do here.
> > + */
> > + if (!chip !chip->irq_set_affinity) {
> > + raw_spin_unlock(&desc->lock);
> > + continue;
> > + }
>
> A bit of a moot point since the very next patch deletes all of this,
> but found this broken 'if' condition when compiling one at a time,
> missing the '&&'.

Hmm, How did I fatfinger that one after booting it?

Yes, the patch is kinda moot, but I wanted to verify that shifting the
logic around does not break any of the hotplug stress tests, so that the
next step becomes less risky.

Thanks,

tglx