On Mon, 7 Feb 2011, James Bottomley wrote: > On Mon, 2011-02-07 at 15:26 -0600, James Bottomley wrote: > > Unfortunately, it's panicing on boot in txn_alloc (that's a CPU > > interrupt allocation in the iosapic), so I'm going to debug further. > > Following up with Thomas over IRC, the attached is the finally final > patch he came up with to fix the panic and sort out the compile issues. > I've verified this on an iosapic system (pa8800) and on dino/gsc (C360) > could someone try it on an astro system? > > Thanks, > > James > > diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c > index 9eea164..cb450e1 100644 > --- a/arch/parisc/kernel/irq.c > +++ b/arch/parisc/kernel/irq.c > @@ -113,7 +113,7 @@ int cpu_check_affinity(struct irq_data *d, const struct cpumask *dest) > int cpu_dest; > > /* timer and ipi have to always be received on all CPUs */ > - if (CHECK_IRQ_PER_CPU(irq)) { > + if (CHECK_IRQ_PER_CPU(irq_to_desc(d->irq)->status)) { For extended fun I just noticed, that nothing ever sets IRQ_PER_CPU in desc->status for all of parisc. This check (using irq) never evaluated to true due to: #define IRQ_PER_CPU 0x00010000 /* IRQ is per CPU */ I doubt that irq can be that large on parisc :) The other place evaluates to false as well, because nothing ever sets the damn flag. If you want to set it please use: set_irq_status_flags(irq, IRQ_PER_CPU); otherwise just kill that PER_CPU thingy :) Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html