diff options
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/pcie/trans.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index 5613339..016b505 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -1950,10 +1950,19 @@ static void iwl_trans_pcie_removal_wk(struct work_struct *wk) dev_err(&pdev->dev, "Device gone - attempting removal\n"); kobject_uevent_env(&pdev->dev.kobj, KOBJ_CHANGE, prop); +#if LINUX_VERSION_IS_GEQ(3,14,0) pci_lock_rescan_remove(); +#endif pci_dev_put(pdev); +#if LINUX_VERSION_IS_LESS(3,2,0) + pci_stop_bus_device(pdev); + pci_remove_bus_device(pdev); +#else pci_stop_and_remove_bus_device(pdev); +#endif +#if LINUX_VERSION_IS_GEQ(3,14,0) pci_unlock_rescan_remove(); +#endif kfree(removal); module_put(THIS_MODULE); |