aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/efx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sfc/efx.c')
-rw-r--r--drivers/net/sfc/efx.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index 796c47e03f65..05502b359b9e 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -798,11 +798,6 @@ void efx_link_status_changed(struct efx_nic *efx)
798 if (!netif_running(efx->net_dev)) 798 if (!netif_running(efx->net_dev))
799 return; 799 return;
800 800
801 if (efx->port_inhibited) {
802 netif_carrier_off(efx->net_dev);
803 return;
804 }
805
806 if (link_state->up != netif_carrier_ok(efx->net_dev)) { 801 if (link_state->up != netif_carrier_ok(efx->net_dev)) {
807 efx->n_link_state_changes++; 802 efx->n_link_state_changes++;
808 803
@@ -1450,7 +1445,7 @@ static void efx_start_all(struct efx_nic *efx)
1450 * restart the transmit interface early so the watchdog timer stops */ 1445 * restart the transmit interface early so the watchdog timer stops */
1451 efx_start_port(efx); 1446 efx_start_port(efx);
1452 1447
1453 if (efx_dev_registered(efx) && !efx->port_inhibited) 1448 if (efx_dev_registered(efx) && netif_device_present(efx->net_dev))
1454 netif_tx_wake_all_queues(efx->net_dev); 1449 netif_tx_wake_all_queues(efx->net_dev);
1455 1450
1456 efx_for_each_channel(channel, efx) 1451 efx_for_each_channel(channel, efx)
@@ -2114,6 +2109,7 @@ int efx_reset(struct efx_nic *efx, enum reset_type method)
2114 netif_info(efx, drv, efx->net_dev, "resetting (%s)\n", 2109 netif_info(efx, drv, efx->net_dev, "resetting (%s)\n",
2115 RESET_TYPE(method)); 2110 RESET_TYPE(method));
2116 2111
2112 netif_device_detach(efx->net_dev);
2117 efx_reset_down(efx, method); 2113 efx_reset_down(efx, method);
2118 2114
2119 rc = efx->type->reset(efx, method); 2115 rc = efx->type->reset(efx, method);
@@ -2147,6 +2143,7 @@ out:
2147 efx->state = STATE_DISABLED; 2143 efx->state = STATE_DISABLED;
2148 } else { 2144 } else {
2149 netif_dbg(efx, drv, efx->net_dev, "reset complete\n"); 2145 netif_dbg(efx, drv, efx->net_dev, "reset complete\n");
2146 netif_device_attach(efx->net_dev);
2150 } 2147 }
2151 return rc; 2148 return rc;
2152} 2149}