1
linux/arch
Eric W. Biederman 610142927b [PATCH] x86_64 irq: Safely cleanup an irq after moving it.
The problem:  After moving an interrupt when is it safe to teardown
the data structures for receiving the interrupt at the old location?

With a normal pci device it is possible to issue a read to a device
to flush all posted writes.  This does not work for the oldest ioapics
because they are on a 3-wire apic bus which is a completely different
data path.  For some more modern ioapics when everything is using
front side bus delivery you can flush interrupts by simply issuing a
read to the ioapic.  For other modern ioapics emperical testing has
shown that this does not work.

So it appears the only reliable way to know the last of the irqs from an
ioapic have been received from before the ioapic was reprogrammed is to
received the first irq from the ioapic from after it was reprogrammed.

Once we know the last irq message has been received from an ioapic
into a local apic we then need to know that irq message has been
processed through the local apics.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-26 10:34:08 -08:00
..
alpha [PATCH] Dynamic kernel command-line: alpha 2007-02-12 09:48:37 -08:00
arm [PATCH] GPIO API: SA1100 wrapper cleanup 2007-02-20 17:10:16 -08:00
arm26 [PATCH] Dynamic kernel command-line: arm26 2007-02-12 09:48:37 -08:00
avr32 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-02-19 13:18:39 -08:00
cris arch/cris: typo in KERN_INFO 2007-02-17 20:12:12 +01:00
frv [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
h8300 [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
i386 [PATCH] irq: Remove set_native_irq_info 2007-02-26 10:34:07 -08:00
ia64 [PATCH] irq: Remove set_native_irq_info 2007-02-26 10:34:07 -08:00
m32r Various typo fixes. 2007-02-17 19:07:33 +01:00
m68k [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
m68knommu [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
mips Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2007-02-20 10:14:29 -08:00
parisc Replace remaining references to "driverfs" with "sysfs". 2007-02-17 19:13:42 +01:00
powerpc backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
ppc [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012] 2007-02-20 17:11:55 +00:00
s390 [S390] Replace $(ARCH) macros in Makefile 2007-02-21 10:55:46 +01:00
sh Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
sh64 [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
sparc [SPARC]: Re-export saved_command_line to modules. 2007-02-12 15:15:48 -08:00
sparc64 [SPARC]: Re-export saved_command_line to modules. 2007-02-12 15:15:48 -08:00
um [PATCH] uml: fix 2.6.20 hang 2007-02-16 08:13:56 -08:00
v850 kbuild: Replace remaining "depends" with "depends on" 2007-02-17 19:05:24 +01:00
x86_64 [PATCH] x86_64 irq: Safely cleanup an irq after moving it. 2007-02-26 10:34:08 -08:00
xtensa [PATCH] Dynamic kernel command-line: xtensa 2007-02-12 09:48:39 -08:00