r8169: move the driver removal method to the end of the driver file.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: Hayes Wang <hayeswang@realtek.com>
This commit is contained in:
parent
b2d3298e09
commit
e27566ed37
|
@ -4263,34 +4263,6 @@ err_out_free_dev_1:
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __devexit rtl8169_remove_one(struct pci_dev *pdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev = pci_get_drvdata(pdev);
|
|
||||||
struct rtl8169_private *tp = netdev_priv(dev);
|
|
||||||
|
|
||||||
if (tp->mac_version == RTL_GIGA_MAC_VER_27 ||
|
|
||||||
tp->mac_version == RTL_GIGA_MAC_VER_28 ||
|
|
||||||
tp->mac_version == RTL_GIGA_MAC_VER_31) {
|
|
||||||
rtl8168_driver_stop(tp);
|
|
||||||
}
|
|
||||||
|
|
||||||
cancel_work_sync(&tp->wk.work);
|
|
||||||
|
|
||||||
unregister_netdev(dev);
|
|
||||||
|
|
||||||
rtl_release_firmware(tp);
|
|
||||||
|
|
||||||
if (pci_dev_run_wake(pdev))
|
|
||||||
pm_runtime_get_noresume(&pdev->dev);
|
|
||||||
|
|
||||||
/* restore original MAC address */
|
|
||||||
rtl_rar_set(tp, dev->perm_addr);
|
|
||||||
|
|
||||||
rtl_disable_msi(pdev, tp);
|
|
||||||
rtl8169_release_board(pdev, dev, tp->mmio_addr);
|
|
||||||
pci_set_drvdata(pdev, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void rtl_request_uncached_firmware(struct rtl8169_private *tp)
|
static void rtl_request_uncached_firmware(struct rtl8169_private *tp)
|
||||||
{
|
{
|
||||||
struct rtl_fw *rtl_fw;
|
struct rtl_fw *rtl_fw;
|
||||||
|
@ -6316,11 +6288,39 @@ static void rtl_shutdown(struct pci_dev *pdev)
|
||||||
pm_runtime_put_noidle(d);
|
pm_runtime_put_noidle(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __devexit rtl_remove_one(struct pci_dev *pdev)
|
||||||
|
{
|
||||||
|
struct net_device *dev = pci_get_drvdata(pdev);
|
||||||
|
struct rtl8169_private *tp = netdev_priv(dev);
|
||||||
|
|
||||||
|
if (tp->mac_version == RTL_GIGA_MAC_VER_27 ||
|
||||||
|
tp->mac_version == RTL_GIGA_MAC_VER_28 ||
|
||||||
|
tp->mac_version == RTL_GIGA_MAC_VER_31) {
|
||||||
|
rtl8168_driver_stop(tp);
|
||||||
|
}
|
||||||
|
|
||||||
|
cancel_work_sync(&tp->wk.work);
|
||||||
|
|
||||||
|
unregister_netdev(dev);
|
||||||
|
|
||||||
|
rtl_release_firmware(tp);
|
||||||
|
|
||||||
|
if (pci_dev_run_wake(pdev))
|
||||||
|
pm_runtime_get_noresume(&pdev->dev);
|
||||||
|
|
||||||
|
/* restore original MAC address */
|
||||||
|
rtl_rar_set(tp, dev->perm_addr);
|
||||||
|
|
||||||
|
rtl_disable_msi(pdev, tp);
|
||||||
|
rtl8169_release_board(pdev, dev, tp->mmio_addr);
|
||||||
|
pci_set_drvdata(pdev, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static struct pci_driver rtl8169_pci_driver = {
|
static struct pci_driver rtl8169_pci_driver = {
|
||||||
.name = MODULENAME,
|
.name = MODULENAME,
|
||||||
.id_table = rtl8169_pci_tbl,
|
.id_table = rtl8169_pci_tbl,
|
||||||
.probe = rtl8169_init_one,
|
.probe = rtl8169_init_one,
|
||||||
.remove = __devexit_p(rtl8169_remove_one),
|
.remove = __devexit_p(rtl_remove_one),
|
||||||
.shutdown = rtl_shutdown,
|
.shutdown = rtl_shutdown,
|
||||||
.driver.pm = RTL8169_PM_OPS,
|
.driver.pm = RTL8169_PM_OPS,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue