sparc64: Fix PCI error interrupt registry on PSYCHO.
authorDavid S. Miller <davem@davemloft.net>
Fri, 12 Sep 2008 22:13:15 +0000 (15:13 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 12 Sep 2008 22:13:15 +0000 (15:13 -0700)
commit80a56ab626c70468be92e74cf3d288ffaed23fdb
tree8c669bbc8252ad013a5f04296afbb8d5e33f05fc
parentbdba4d6b77fcc76f206986d7cc55f1feb20301f8
sparc64: Fix PCI error interrupt registry on PSYCHO.

We need to pass IRQF_SHARED, otherwise we get things like:

IRQ handler type mismatch for IRQ 33
current handler: PSYCHO_UE
Call Trace:
 [000000000048394c] request_irq+0xac/0x120
 [00000000007c5f6c] psycho_scan_bus+0x98/0x158
 [00000000007c2bc0] pcibios_init+0xdc/0x12c
 [0000000000426a5c] do_one_initcall+0x1c/0x160
 [00000000007c0180] kernel_init+0x9c/0xfc
 [0000000000427050] kernel_thread+0x30/0x60
 [00000000006ae1d0] rest_init+0x10/0x60

on e3500 and similar systems.

On a single board, the UE interrupts of two Psycho nodes
are funneled through the same interrupt, from of_debug=3
dump:

/pci@b,4000: direct translate 2ee --> 21
 ...
/pci@b,2000: direct translate 2ee --> 21

Decimal "33" mentioned above is the hex "21" mentioned here.

Thanks to Meelis Roos for dumps and testing.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/pci_psycho.c