linux/arch/sparc
oftedal ea16058457 Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly
During the introduction of genirq on sparc32 bugs were introduced in
the interrupt handler for sun4d. The interrupts handler checks the status
of the various sbus interfaces in the system and generates a virtual
interrupt, based upon the location of the interrupt source. This lookup
was broken by restructuring the code in such a way that index and shift
operations were performed prior to comparing this against the values
read from the interrupt controllers.

This could cause the handler to loop eternally as the interrupt source
could be skipped before any check was performed. Additionally
sun4d_encode_irq performs shifting internally, so it should not be performed
twice.

In sun4d_unmask interrupts were not correctly acknowledged, as the
corresponding bit it the interrupt mask was not actually cleared.

Signed-off-by: Kjetil Oftedal <oftedal@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-06-07 16:06:33 -07:00
..
boot sparc32: added U-Boot build target: uImage 2011-03-16 18:19:04 -07:00
configs defconfig reduction 2010-08-14 22:26:53 +02:00
include/asm sparc32,leon: add GRPCI2 PCI Host driver 2011-06-02 14:32:38 -07:00
kernel Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly 2011-06-07 16:06:33 -07:00
lib Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2011-05-20 12:59:54 -07:00
math-emu Fix common misspellings 2011-03-31 11:26:23 -03:00
mm mm: now that all old mmu_gather code is gone, remove the storage 2011-05-25 08:39:16 -07:00
oprofile sparc: using HZ needs an include of linux/param.h 2009-10-05 00:46:08 -07:00
prom sparc32: remove tick14.c 2011-03-16 18:19:08 -07:00
Kconfig sparc: PCIC_PCI needs SPARC32 dependency 2011-06-02 22:49:11 -07:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile sparc32: added U-Boot build target: uImage 2011-03-16 18:19:04 -07:00