arch/ppc/kernel/irq.c | 25 +++++++++++-------------- 1 files changed, 11 insertions(+), 14 deletions(-) diff -puN arch/ppc/kernel/irq.c~cpumask-ppc-fixes arch/ppc/kernel/irq.c --- 25/arch/ppc/kernel/irq.c~cpumask-ppc-fixes 2003-08-05 17:28:05.000000000 -0700 +++ 25-akpm/arch/ppc/kernel/irq.c 2003-08-05 17:28:05.000000000 -0700 @@ -540,18 +540,6 @@ unsigned int probe_irq_mask(unsigned lon return 0; } -void __init init_IRQ(void) -{ - static int once = 0; - - if ( once ) - return; - else - once++; - - ppc_md.init_IRQ(); -} - #ifdef CONFIG_SMP void synchronize_irq(unsigned int irq) { @@ -570,8 +558,7 @@ static struct proc_dir_entry *smp_affini #define DEFAULT_CPU_AFFINITY cpumask_of_cpu(0) #endif -cpumask_t irq_affinity [NR_IRQS] = - { [0 ... NR_IRQS-1] = DEFAULT_CPU_AFFINITY }; +cpumask_t irq_affinity [NR_IRQS]; #define HEX_DIGITS (2*sizeof(cpumask_t)) @@ -757,3 +744,13 @@ irqreturn_t no_action(int irq, void *dev { return IRQ_NONE; } + +void __init init_IRQ(void) +{ + int i; + + for (i = 0; i < NR_IRQS; ++i) + irq_affinity[i] = DEFAULT_CPU_AFFINITY; + + ppc_md.init_IRQ(); +} _