|
@@ -1968,6 +1968,7 @@ static int sh_eth_set_ringparam(struct net_device *ndev,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
if (netif_running(ndev)) {
|
|
if (netif_running(ndev)) {
|
|
|
|
+ netif_device_detach(ndev);
|
|
netif_tx_disable(ndev);
|
|
netif_tx_disable(ndev);
|
|
/* Disable interrupts by clearing the interrupt mask. */
|
|
/* Disable interrupts by clearing the interrupt mask. */
|
|
sh_eth_write(ndev, 0x0000, EESIPR);
|
|
sh_eth_write(ndev, 0x0000, EESIPR);
|
|
@@ -2001,7 +2002,7 @@ static int sh_eth_set_ringparam(struct net_device *ndev,
|
|
sh_eth_write(ndev, mdp->cd->eesipr_value, EESIPR);
|
|
sh_eth_write(ndev, mdp->cd->eesipr_value, EESIPR);
|
|
/* Setting the Rx mode will start the Rx process. */
|
|
/* Setting the Rx mode will start the Rx process. */
|
|
sh_eth_write(ndev, EDRRR_R, EDRRR);
|
|
sh_eth_write(ndev, EDRRR_R, EDRRR);
|
|
- netif_wake_queue(ndev);
|
|
|
|
|
|
+ netif_device_attach(ndev);
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|