aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/tg3.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.c')
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index ddebc7a5dda0..0da2214ef1b9 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -17796,8 +17796,10 @@ static pci_ers_result_t tg3_io_error_detected(struct pci_dev *pdev,
17796 17796
17797done: 17797done:
17798 if (state == pci_channel_io_perm_failure) { 17798 if (state == pci_channel_io_perm_failure) {
17799 tg3_napi_enable(tp); 17799 if (netdev) {
17800 dev_close(netdev); 17800 tg3_napi_enable(tp);
17801 dev_close(netdev);
17802 }
17801 err = PCI_ERS_RESULT_DISCONNECT; 17803 err = PCI_ERS_RESULT_DISCONNECT;
17802 } else { 17804 } else {
17803 pci_disable_device(pdev); 17805 pci_disable_device(pdev);
@@ -17827,7 +17829,8 @@ static pci_ers_result_t tg3_io_slot_reset(struct pci_dev *pdev)
17827 rtnl_lock(); 17829 rtnl_lock();
17828 17830
17829 if (pci_enable_device(pdev)) { 17831 if (pci_enable_device(pdev)) {
17830 netdev_err(netdev, "Cannot re-enable PCI device after reset.\n"); 17832 dev_err(&pdev->dev,
17833 "Cannot re-enable PCI device after reset.\n");
17831 goto done; 17834 goto done;
17832 } 17835 }
17833 17836
@@ -17835,7 +17838,7 @@ static pci_ers_result_t tg3_io_slot_reset(struct pci_dev *pdev)
17835 pci_restore_state(pdev); 17838 pci_restore_state(pdev);
17836 pci_save_state(pdev); 17839 pci_save_state(pdev);
17837 17840
17838 if (!netif_running(netdev)) { 17841 if (!netdev || !netif_running(netdev)) {
17839 rc = PCI_ERS_RESULT_RECOVERED; 17842 rc = PCI_ERS_RESULT_RECOVERED;
17840 goto done; 17843 goto done;
17841 } 17844 }
@@ -17847,7 +17850,7 @@ static pci_ers_result_t tg3_io_slot_reset(struct pci_dev *pdev)
17847 rc = PCI_ERS_RESULT_RECOVERED; 17850 rc = PCI_ERS_RESULT_RECOVERED;
17848 17851
17849done: 17852done:
17850 if (rc != PCI_ERS_RESULT_RECOVERED && netif_running(netdev)) { 17853 if (rc != PCI_ERS_RESULT_RECOVERED && netdev && netif_running(netdev)) {
17851 tg3_napi_enable(tp); 17854 tg3_napi_enable(tp);
17852 dev_close(netdev); 17855 dev_close(netdev);
17853 } 17856 }