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

From: Sam Ravnborg
Date: Wed May 17 2006 - 01:56:56 EST


On Wed, May 17, 2006 at 02:13:24AM +0200, Ingo Molnar wrote:
> From: Ingo Molnar <mingo@xxxxxxx>
>
> consolidation: remove the irq_affinity[NR_IRQS] array and move it
> into the irq_desc[NR_IRQS].affinity field.
>
> Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---

> Index: linux-genirq.q/arch/powerpc/platforms/pseries/xics.c
> ===================================================================
> --- linux-genirq.q.orig/arch/powerpc/platforms/pseries/xics.c
> +++ 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..

> Index: linux-genirq.q/include/linux/irq.h
> ===================================================================
> --- linux-genirq.q.orig/include/linux/irq.h
> +++ linux-genirq.q/include/linux/irq.h
> @@ -77,6 +77,9 @@ typedef struct irq_desc {
> unsigned int irq_count; /* For detecting broken interrupts */
> unsigned int irqs_unhandled;
> spinlock_t lock;
> +#ifdef CONFIG_SMP
> + cpumask_t affinity;
> +#endif

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

Sam
-
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/