android_kernel_google_msm/arch
Alex Williamson 451fe00cf7 [IA64] Clear IRQ affinity when unregistered
When we offline a CPU, migrate_irqs() tries to determine whether the
affinity bits of the IRQ descriptor match any of the remaining online
CPUs.  If not, it fixes up the interrupt to point somewhere else.
Unfortunately, if an IRQ is unregistered the IRQ descriptor may still
have affinity to the CPU being offlined, but the no_irq_chip handler
doesn't provide a set_affinity function.  This causes us to hit the
WARN_ON in migrate_irqs().

The easiest solution seems to be setting all the bits in the affinity
mask when the last interrupt is removed from the vector.  I hit this on
an older kernel with Xen/ia64 using driver domains (so it probably needs
more testing on upstream).  Xen essentially uses the bind/unbind
interface in sysfs to unregister a device from a driver and thus
unregister the interrupt.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2007-02-05 14:09:51 -08:00
..
alpha [PATCH] missing exports of pm_power_off() on alpha and sparc32 2007-01-30 08:39:20 -08:00
arm [ARM] 4117/1: S3C2412: Fix writel() usage in selection code 2007-01-29 10:09:17 +00:00
arm26 [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
avr32 [AVR32] Update ATSTK1000 defconfig: Enable macb by default 2007-01-26 13:19:48 +01:00
cris [PATCH] Change cpu_up and co from __devinit to __cpuinit 2007-01-11 18:18:20 -08:00
frv [PATCH] sysctl: remove unused "context" param 2006-12-10 09:55:41 -08:00
h8300 [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
i386 [PATCH] EFI x86: pass firmware call parameters on the stack 2007-02-04 10:27:10 -08:00
ia64 [IA64] Clear IRQ affinity when unregistered 2007-02-05 14:09:51 -08:00
m32r [PATCH] Change cpu_up and co from __devinit to __cpuinit 2007-01-11 18:18:20 -08:00
m68k [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
m68knommu [PATCH] LOG2: Implement a general integer log2 facility in the kernel 2006-12-08 08:28:51 -08:00
mips [MIPS] Fix typo of "CONFIG_MT_SMP". 2007-01-30 12:10:48 +00:00
parisc [PATCH] Change cpu_up and co from __devinit to __cpuinit 2007-01-11 18:18:20 -08:00
powerpc Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-01-28 12:45:22 -08:00
ppc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2007-01-18 10:34:51 +11:00
s390 [PATCH] Fix sparsemem on Cell 2007-01-11 18:18:20 -08:00
sh sh: Fixup SH-2 BUG() trap handling. 2006-12-12 09:11:45 +09:00
sh64 [PATCH] Generic ioremap_page_range: sh64 conversion 2006-12-08 08:28:52 -08:00
sparc [PATCH] sanitize sections for sparc32 smp 2007-02-01 16:17:06 -08:00
sparc64 [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. 2007-01-26 18:56:01 -08:00
um [PATCH] uml: fix signal frame alignment 2007-01-30 16:01:35 -08:00
v850 kconfig: Standardize "depends" -> "depends on" in Kconfig files 2006-12-12 20:04:19 +01:00
x86_64 [PATCH] x86_64 ia32 vDSO: define arch_vma_name 2007-01-26 13:50:58 -08:00
xtensa [PATCH] Xtensa: Add ktermios and minor filename fix 2006-12-13 09:05:50 -08:00