static int xgbe_remove(struct platform_device *pdev) { struct net_device *netdev = platform_get_drvdata(pdev); struct xgbe_prv_data *pdata = netdev_priv(netdev); DBGPR("-->xgbe_remove\n"); xgbe_debugfs_exit(pdata); xgbe_ptp_unregister(pdata); flush_workqueue(pdata->an_workqueue); destroy_workqueue(pdata->an_workqueue); flush_workqueue(pdata->dev_workqueue); destroy_workqueue(pdata->dev_workqueue); unregister_netdev(netdev); free_netdev(netdev); DBGPR("<--xgbe_remove\n"); return 0; }
static int xgbe_remove(struct platform_device *pdev) { struct net_device *netdev = platform_get_drvdata(pdev); struct xgbe_prv_data *pdata = netdev_priv(netdev); DBGPR("-->xgbe_remove\n"); xgbe_debugfs_exit(pdata); unregister_netdev(netdev); xgbe_mdio_unregister(pdata); kfree(pdata->mii_bus_id); free_netdev(netdev); DBGPR("<--xgbe_remove\n"); return 0; }