• Gavin Shan's avatar
    net/tg3: Release IRQs on permanent error · dfc8f370
    Gavin Shan authored
    When having permanent EEH error, the PCI device will be removed
    from the system. For this case, we shouldn't set pcierr_recovery
    to true wrongly, which blocks the driver to release the allocated
    interrupts and their handlers. Eventually, we can't disable MSI
    or MSIx successfully because of the MSI or MSIx interrupts still
    have associated interrupt actions, which is turned into following
    stack dump.
    
    Oops: Exception in kernel mode, sig: 5 [#1]
            :
    [c0000000003b76a8] .free_msi_irqs+0x80/0x1a0 (unreliable)
    [c00000000039f388] .pci_remove_bus_device+0x98/0x110
    [c0000000000790f4] .pcibios_remove_pci_devices+0x9c/0x128
    [c000000000077b98] .handle_eeh_events+0x2d8/0x4b0
    [c0000000000782d0] .eeh_event_handler+0x130/0x1c0
    [c000000000022bd4] .kernel_thread+0x54/0x70
    Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    Acked-by: default avatarPrashant Sreedharan <prashant@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dfc8f370
tg3.c 466 KB