Skip to content

Commit

Permalink
x64, apic: use generic apic_write() for ack_APIC_irq()
Browse files Browse the repository at this point in the history
I tested tip/master and found an issue (patch attached)
for x2apic support. This is not because of the recent merges we had, but
because of something(where we still access memory based interface after
enabling x2apic mode) that slipped through my earlier tests.

Probably it is a good idea to unmap the memory mapped interface, once we switch
to x2apic mode. That will catch the issues much earlier. I will
post another patch for this.

ack_APIC_irq() is used at too many generic places (and not just during
irq_chip handling!) to use the native_apic_mem_write(). For ex, this will
break x2apic based systems.

Fix ack_APIC_irq() to use the generic apic_write() even for 64-bit.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: suresh.b.siddha@intel.com
Cc: yong.y.wang@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Suresh Siddha authored and Ingo Molnar committed Jul 22, 2008
1 parent 1b9b89e commit df1be43
Showing 1 changed file with 0 additions and 4 deletions.
4 changes: 0 additions & 4 deletions include/asm-x86/apic.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,7 @@ static inline void ack_APIC_irq(void)
*/

/* Docs say use 0 for future compatibility */
#ifdef CONFIG_X86_32
apic_write(APIC_EOI, 0);
#else
native_apic_mem_write(APIC_EOI, 0);
#endif
}

extern int lapic_get_maxlvt(void);
Expand Down

0 comments on commit df1be43

Please sign in to comment.