From: Zwane Mwaikambo arch/x86_64/kernel/io_apic.c:1311: warning: initialization from incompatible pointer type arch/x86_64/kernel/io_apic.c:1322: warning: initialization from incompatible pointer type 25-akpm/arch/x86_64/kernel/io_apic.c | 10 +++++++--- 25-akpm/include/asm-x86_64/smp.h | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff -puN arch/x86_64/kernel/io_apic.c~x86_64-cpumask_t-fix arch/x86_64/kernel/io_apic.c --- 25/arch/x86_64/kernel/io_apic.c~x86_64-cpumask_t-fix Tue Aug 12 13:54:05 2003 +++ 25-akpm/arch/x86_64/kernel/io_apic.c Tue Aug 12 13:54:05 2003 @@ -1278,16 +1278,20 @@ static void end_level_ioapic_irq (unsign static void mask_and_ack_level_ioapic_irq (unsigned int irq) { /* nothing */ } -static void set_ioapic_affinity (unsigned int irq, unsigned long mask) +static void set_ioapic_affinity (unsigned int irq, cpumask_t mask) { unsigned long flags; + unsigned int dest; + + dest = cpu_mask_to_apicid(mk_cpumask_const(mask)); + /* * Only the first 8 bits are valid. */ - mask = mask << 24; + dest = dest << 24; spin_lock_irqsave(&ioapic_lock, flags); - __DO_ACTION(1, = mask, ) + __DO_ACTION(1, = dest, ) spin_unlock_irqrestore(&ioapic_lock, flags); } diff -puN include/asm-x86_64/smp.h~x86_64-cpumask_t-fix include/asm-x86_64/smp.h --- 25/include/asm-x86_64/smp.h~x86_64-cpumask_t-fix Tue Aug 12 13:54:05 2003 +++ 25-akpm/include/asm-x86_64/smp.h Tue Aug 12 13:54:05 2003 @@ -67,8 +67,6 @@ static inline int num_booting_cpus(void) return cpus_weight(cpu_callout_map); } -extern cpumask_t cpu_callout_map; - #define smp_processor_id() read_pda(cpunumber) extern __inline int hard_smp_processor_id(void) @@ -96,6 +94,12 @@ extern inline int safe_smp_processor_id( #define INT_DELIVERY_MODE 1 /* logical delivery */ #define TARGET_CPUS 1 +#ifndef ASSEMBLY +static inline unsigned int cpu_mask_to_apicid(cpumask_const_t cpumask) +{ + return cpus_coerce_const(cpumask); +} +#endif #ifndef CONFIG_SMP #define stack_smp_processor_id() 0 _