OpenCloudOS-Kernel/arch/x86/kernel/apic
Suresh Siddha a5e74b8419 x86: Force irq complete move during cpu offline
When a cpu goes offline, fixup_irqs() try to move irq's
currently destined to the offline cpu to a new cpu. But this
attempt will fail if the irq is recently moved to this cpu and
the irq still hasn't arrived at this cpu (for non intr-remapping
platforms this is when we free the vector allocation at the
previous destination) that is about to go offline.

This will endup with the interrupt subsystem still pointing the
irq to the offline cpu, causing that irq to not work any more.

Fix this by forcing the irq to complete its move (its been a
long time we moved the irq to this cpu which we are offlining
now) and then move this irq to a new cpu before this cpu goes
offline.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Gary Hade <garyhade@us.ibm.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
LKML-Reference: <20091026230001.848830905@sbs-t61.sc.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-11-02 15:56:36 +01:00
..
Makefile x86, apic: Introduce the NOOP apic driver 2009-10-14 09:17:00 +02:00
apic.c x86, apic: Clear APIC Timer Initial Count Register on shutdown 2009-10-27 14:54:21 +01:00
apic_flat_64.c x86: don't call read_apic_id if !cpu_has_apic 2009-05-18 08:43:25 +02:00
apic_noop.c x86: apic: Allow noop operations to be called almost at any time 2009-10-15 17:26:53 +02:00
bigsmp_32.c x86: apic namespace cleanup 2009-08-31 21:30:47 +02:00
es7000_32.c Merge branch 'for-ingo' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6 into x86/apic 2009-08-29 09:31:47 +02:00
io_apic.c x86: Force irq complete move during cpu offline 2009-11-02 15:56:36 +01:00
ipi.c Merge commit 'v2.6.31-rc7' into x86/cleanups 2009-08-24 12:25:54 +02:00
nmi.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
numaq_32.c x86: apic namespace cleanup 2009-08-31 21:30:47 +02:00
probe_32.c x86: Remove duplicated #include's 2009-06-17 19:02:35 +02:00
probe_64.c x86, apic: Use logical flat on intel with <= 8 logical cpus 2009-09-19 09:20:05 +02:00
summit_32.c x86: apic namespace cleanup 2009-08-31 21:30:47 +02:00
x2apic_cluster.c x86: Fix MSI-X initialization by using online_mask for x2apic target_cpus 2009-08-08 17:04:58 +02:00
x2apic_phys.c x86: Fix MSI-X initialization by using online_mask for x2apic target_cpus 2009-08-08 17:04:58 +02:00
x2apic_uv_x.c x86: SGI UV: Map MMIO-High memory range 2009-09-18 14:06:40 +02:00