Re: [patch 01/50] genirq: cleanup: merge irq_affinity[] into irq_desc[]

From: Ingo Molnar
Date: Wed May 17 2006 - 04:32:09 EST



* Sam Ravnborg <sam@xxxxxxxxxxxx> wrote:

> > +++ linux-genirq.q/arch/powerpc/platforms/pseries/xics.c
> > @@ -238,7 +238,7 @@ static int get_irq_server(unsigned int i
> > {
> > unsigned int server;
> > /* For the moment only implement delivery to all cpus or one cpu */
> > - cpumask_t cpumask = irq_affinity[irq];
> > + cpumask_t cpumask = irq_desc[irq].affinity;
> > cpumask_t tmp = CPU_MASK_NONE;
> >
> > if (!distribute_irqs)
>
> Assigned unconditionally - outside CONFIG_SMP as I read the code but..

> > +#ifdef CONFIG_SMP
> > + cpumask_t affinity;
> > +#endif

> But defined only for SMP. Looks wrong at first look.

but the original array was under SMP too:

--- linux-genirq.q.orig/kernel/irq/manage.c
+++ linux-genirq.q/kernel/irq/manage.c
@@ -16,8 +16,6 @@

#ifdef CONFIG_SMP

-cpumask_t irq_affinity[NR_IRQS] = { [0 ... NR_IRQS-1] = CPU_MASK_ALL };

so if then this is a powerpc bug. (probably pseries is rarely built
without SMP support)

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/