From: Zwane Mwaikambo arch/i386/kernel/io_apic.c | 2 +- drivers/pci/msi.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN arch/i386/kernel/io_apic.c~msi-many-cpus-fix arch/i386/kernel/io_apic.c --- 25/arch/i386/kernel/io_apic.c~msi-many-cpus-fix 2003-11-25 22:40:07.000000000 -0800 +++ 25-akpm/arch/i386/kernel/io_apic.c 2003-11-25 22:40:07.000000000 -0800 @@ -1956,7 +1956,7 @@ static void unmask_IO_APIC_vector (unsig } static void set_ioapic_affinity_vector (unsigned int vector, - unsigned long cpu_mask) + cpumask_t cpu_mask) { int irq = vector_to_irq(vector); diff -puN drivers/pci/msi.c~msi-many-cpus-fix drivers/pci/msi.c --- 25/drivers/pci/msi.c~msi-many-cpus-fix 2003-11-25 22:40:07.000000000 -0800 +++ 25-akpm/drivers/pci/msi.c 2003-11-25 22:40:07.000000000 -0800 @@ -89,7 +89,7 @@ static void msi_set_mask_bit(unsigned in } #ifdef CONFIG_SMP -static void set_msi_affinity(unsigned int vector, unsigned long cpu_mask) +static void set_msi_affinity(unsigned int vector, cpumask_t cpu_mask) { struct msi_desc *entry; struct msg_address address; @@ -141,9 +141,9 @@ static void set_msi_affinity(unsigned in static inline void move_msi(int vector) { - if (unlikely(pending_irq_balance_cpumask[vector])) { + if (!cpus_empty(pending_irq_balance_cpumask[vector])) { set_msi_affinity(vector, pending_irq_balance_cpumask[vector]); - pending_irq_balance_cpumask[vector] = 0; + cpus_clear(pending_irq_balance_cpumask[vector]); } } #endif _