]> git.baikalelectronics.ru Git - kernel.git/commit
net/tg3: Release IRQs on permanent error
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Fri, 24 Apr 2015 05:22:23 +0000 (15:22 +1000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Apr 2015 18:31:25 +0000 (14:31 -0400)
commit0cfd74b80feb8bf1123bf24a7a11eff6f936ac7e
tree0f0e20636e1edea235ca49db622cfdbee7c2865a
parent7d1ebdd3949498174620fff43e4409233565c436
net/tg3: Release IRQs on permanent error

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: Gavin Shan <gwshan@linux.vnet.ibm.com>
Acked-by: Prashant Sreedharan <prashant@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/tg3.c