From: Ingo Molnar The patch below gets rid of io_apic_sync(). io_apic_sync() was introduced in 2.1.104 and it was originally done for masking and unmasking as well. Later the unmasking use got removed but the masking use lingered around. I dont think it was ever justified to do it and clearly since the lack of io_apic_sync() didnt break some of the other writes we do to the IO-APIC registers, it must be unnecessary in the masking case too. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/io_apic.c | 3 --- 25-akpm/include/asm-i386/io_apic.h | 9 --------- 2 files changed, 12 deletions(-) diff -puN arch/i386/kernel/io_apic.c~remove-io_apic_sync arch/i386/kernel/io_apic.c --- 25/arch/i386/kernel/io_apic.c~remove-io_apic_sync 2004-05-27 11:27:49.116898368 -0700 +++ 25-akpm/arch/i386/kernel/io_apic.c 2004-05-27 11:27:49.122897456 -0700 @@ -145,10 +145,7 @@ static void __modify_IO_APIC_irq (unsign /* mask = 1 */ static void __mask_IO_APIC_irq (unsigned int irq) { - struct irq_pin_list *entry = irq_2_pin + irq; __modify_IO_APIC_irq(irq, 0x00010000, 0); - /* Is it needed? Or do others need it too? */ - io_apic_sync(entry->apic); } /* mask = 0 */ diff -puN include/asm-i386/io_apic.h~remove-io_apic_sync include/asm-i386/io_apic.h --- 25/include/asm-i386/io_apic.h~remove-io_apic_sync 2004-05-27 11:27:49.117898216 -0700 +++ 25-akpm/include/asm-i386/io_apic.h 2004-05-27 11:27:49.123897304 -0700 @@ -188,15 +188,6 @@ static inline void io_apic_modify(unsign *(IO_APIC_BASE(apic)+4) = value; } -/* - * Synchronize the IO-APIC and the CPU by doing - * a dummy read from the IO-APIC - */ -static inline void io_apic_sync(unsigned int apic) -{ - (void) *(IO_APIC_BASE(apic)+4); -} - /* 1 if "noapic" boot option passed */ extern int skip_ioapic_setup; _