mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
net: axienet: stop interface during shutdown
On some platforms, such as iMX6 with PCIe devices, crashes or hangs can occur if the axienet device continues to perform DMA transfers after parent devices/busses have been shut down. Shut down the axienet interface during its shutdown callback in order to avoid this. Signed-off-by: Robert Hancock <hancock@sedsystems.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d05a9ed5c3
commit
70c50265c4
@ -1797,9 +1797,23 @@ static int axienet_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void axienet_shutdown(struct platform_device *pdev)
|
||||
{
|
||||
struct net_device *ndev = platform_get_drvdata(pdev);
|
||||
|
||||
rtnl_lock();
|
||||
netif_device_detach(ndev);
|
||||
|
||||
if (netif_running(ndev))
|
||||
dev_close(ndev);
|
||||
|
||||
rtnl_unlock();
|
||||
}
|
||||
|
||||
static struct platform_driver axienet_driver = {
|
||||
.probe = axienet_probe,
|
||||
.remove = axienet_remove,
|
||||
.shutdown = axienet_shutdown,
|
||||
.driver = {
|
||||
.name = "xilinx_axienet",
|
||||
.of_match_table = axienet_of_match,
|
||||
|
Loading…
Reference in New Issue
Block a user