Oct. 20, 2011
7:07 p.m.
#define APIC_ICR_high 0xfee00310
apic_icr = tmpaddress; apic_icr |= APIC_ICR_high; apic_phy_addr = (unsigned long *) apic_icr; *apic_phy_addr = cpu << 24;
You mangled apic_icr here, APIC_ICR_high should be an offset. Look at the definitions in arch/x86/include/asm/apicdef.h.