aha/arch
David S. Miller 227c331178 sparc64: Fix wedged irq regression.
Kernel bugzilla 10273

As reported by Jos van der Ende, ever since commit
5a606b72a4 ("[SPARC64]: Do not ACK an
INO if it is disabled or inprogress.") sun4u interrupts
can get stuck.

What this changset did was add the following conditional to
the various IRQ chip ->enable() handlers on sparc64:

	if (unlikely(desc->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
		return;

which is correct, however it means that special care is needed
in the ->enable() method.

Specifically we must put the interrupt into IDLE state during
an enable, or else it might never be sent out again.

Setting the INO interrupt state to IDLE resets the state machine,
the interrupt input to the INO is retested by the hardware, and
if an interrupt is being signalled by the device, the INO
moves back into TRANSMIT state, and an interrupt vector is sent
to the cpu.

The two sun4v IRQ chip handlers were already doing this properly,
only sun4u got it wrong.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-04-26 21:41:15 -07:00
..
alpha alpha: unbreak OSF/1 (a.out) binaries 2008-04-24 08:35:47 -07:00
arm Merge branch 'irq-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2008-04-24 08:42:21 -07:00
avr32 avr32: Add hardware power-down function call 2008-04-19 20:40:11 -04:00
blackfin [Blackfin] arch: add include/boot .gitignore files 2008-04-25 08:29:11 +08:00
cris Generic semaphore implementation 2008-04-17 10:42:34 -04:00
frv frv: unexport kmap_atomic_to_page 2008-04-21 16:03:13 -07:00
h8300 Generic semaphore implementation 2008-04-17 10:42:34 -04:00
ia64 [IA64] move XP and XPC to drivers/misc/sgi-xp 2008-04-22 15:08:17 -07:00
m32r Generic semaphore implementation 2008-04-17 10:42:34 -04:00
m68k arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
m68knommu Generic semaphore implementation 2008-04-17 10:42:34 -04:00
mips arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
mn10300 PCI: remove initial bios sort of PCI devices on x86 2008-04-20 21:46:58 -07:00
parisc Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 2008-04-21 15:58:35 -07:00
powerpc [POWERPC] Add zImage.iseries to arch/powerpc/boot/.gitignore 2008-04-25 09:48:13 +10:00
ppc [POWERPC] Add strncmp to arch/ppc 2008-04-24 20:57:34 +10:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2008-04-21 15:57:09 -07:00
sh Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 2008-04-21 15:58:35 -07:00
sparc sparc: cleanup after SunOS binary emulation removal 2008-04-23 23:32:18 -07:00
sparc64 sparc64: Fix wedged irq regression. 2008-04-26 21:41:15 -07:00
um x86, bitops: select the generic bitmap search functions 2008-04-26 19:21:17 +02:00
v850 arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
x86 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootmem-v3 2008-04-26 14:04:32 -07:00
xtensa Generic semaphore implementation 2008-04-17 10:42:34 -04:00
.gitignore
Kconfig