diff options
| -rw-r--r-- | drivers/net/ucc_geth.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index 0f8c99e845dd..7fff4c5a1693 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c | |||
| @@ -1563,7 +1563,10 @@ static int ugeth_disable(struct ucc_geth_private *ugeth, enum comm_dir mode) | |||
| 1563 | 1563 | ||
| 1564 | static void ugeth_quiesce(struct ucc_geth_private *ugeth) | 1564 | static void ugeth_quiesce(struct ucc_geth_private *ugeth) |
| 1565 | { | 1565 | { |
| 1566 | /* Wait for and prevent any further xmits. */ | 1566 | /* Prevent any further xmits, plus detach the device. */ |
| 1567 | netif_device_detach(ugeth->ndev); | ||
| 1568 | |||
| 1569 | /* Wait for any current xmits to finish. */ | ||
| 1567 | netif_tx_disable(ugeth->ndev); | 1570 | netif_tx_disable(ugeth->ndev); |
| 1568 | 1571 | ||
| 1569 | /* Disable the interrupt to avoid NAPI rescheduling. */ | 1572 | /* Disable the interrupt to avoid NAPI rescheduling. */ |
| @@ -1577,7 +1580,7 @@ static void ugeth_activate(struct ucc_geth_private *ugeth) | |||
| 1577 | { | 1580 | { |
| 1578 | napi_enable(&ugeth->napi); | 1581 | napi_enable(&ugeth->napi); |
| 1579 | enable_irq(ugeth->ug_info->uf_info.irq); | 1582 | enable_irq(ugeth->ug_info->uf_info.irq); |
| 1580 | netif_tx_wake_all_queues(ugeth->ndev); | 1583 | netif_device_attach(ugeth->ndev); |
| 1581 | } | 1584 | } |
| 1582 | 1585 | ||
| 1583 | /* Called every time the controller might need to be made | 1586 | /* Called every time the controller might need to be made |
