• David S. Miller's avatar
    [SPARC64]: Fix several bugs in MSI handling. · 5f92c329
    David S. Miller authored
    1) sun4{u,v}_build_msi() have improper return value handling.
    
       We should always return negative error codes, instead of
       using the magic value "0" which could in fact be a valid
       MSI number.
    
    2) sun4{u,v}_build_msi() should return -ENOMEM instead of
       calling prom_prom() halt with kzalloc() of the interrupt
       data fails.
    
    3) We 'remembered' the MSI number using a singleton in the
       struct device archdata area, this doesn't work for MSI-X
       which can cause multiple MSIs assosciated with one device.
    
       Delete that archdata member, and instead store the MSI
       number in the IRQ chip data area.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5f92c329
pci_sun4v.c 29.2 KB