• David S. Miller's avatar
    sparc64: Fix PCI error interrupt registry on PSYCHO. · 80a56ab6
    David S. Miller authored
    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: default avatarDavid S. Miller <davem@davemloft.net>
    80a56ab6
pci_psycho.c 36.9 KB