diff options
Diffstat (limited to 'drivers/net/sfc/efx.c')
-rw-r--r-- | drivers/net/sfc/efx.c | 9 |
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 | } |