提交 019d077a 编写于 作者: F Francois Romieu

ipw2100: remove useless tests in the PCI device remove path.

Everything has been set up in the PCI probe function.
Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
上级 9b717075
......@@ -6421,50 +6421,46 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
static void __devexit ipw2100_pci_remove_one(struct pci_dev *pci_dev)
{
struct ipw2100_priv *priv = pci_get_drvdata(pci_dev);
struct net_device *dev;
struct net_device *dev = priv->net_dev;
if (priv) {
mutex_lock(&priv->action_mutex);
mutex_lock(&priv->action_mutex);
priv->status &= ~STATUS_INITIALIZED;
priv->status &= ~STATUS_INITIALIZED;
dev = priv->net_dev;
sysfs_remove_group(&pci_dev->dev.kobj,
&ipw2100_attribute_group);
sysfs_remove_group(&pci_dev->dev.kobj, &ipw2100_attribute_group);
#ifdef CONFIG_PM
if (ipw2100_firmware.version)
ipw2100_release_firmware(priv, &ipw2100_firmware);
if (ipw2100_firmware.version)
ipw2100_release_firmware(priv, &ipw2100_firmware);
#endif
/* Take down the hardware */
ipw2100_down(priv);
/* Take down the hardware */
ipw2100_down(priv);
/* Release the mutex so that the network subsystem can
* complete any needed calls into the driver... */
mutex_unlock(&priv->action_mutex);
/* Release the mutex so that the network subsystem can
* complete any needed calls into the driver... */
mutex_unlock(&priv->action_mutex);
/* Unregister the device first - this results in close()
* being called if the device is open. If we free storage
* first, then close() will crash. */
unregister_netdev(dev);
/* Unregister the device first - this results in close()
* being called if the device is open. If we free storage
* first, then close() will crash.
* FIXME: remove the comment above. */
unregister_netdev(dev);
ipw2100_kill_works(priv);
ipw2100_kill_works(priv);
ipw2100_queues_free(priv);
ipw2100_queues_free(priv);
/* Free potential debugging firmware snapshot */
ipw2100_snapshot_free(priv);
/* Free potential debugging firmware snapshot */
ipw2100_snapshot_free(priv);
if (dev->irq)
free_irq(dev->irq, priv);
free_irq(dev->irq, priv);
pci_iounmap(pci_dev, priv->ioaddr);
pci_iounmap(pci_dev, priv->ioaddr);
/* wiphy_unregister needs to be here, before free_libipw */
wiphy_unregister(priv->ieee->wdev.wiphy);
kfree(priv->ieee->bg_band.channels);
free_libipw(dev, 0);
}
/* wiphy_unregister needs to be here, before free_libipw */
wiphy_unregister(priv->ieee->wdev.wiphy);
kfree(priv->ieee->bg_band.channels);
free_libipw(dev, 0);
pci_release_regions(pci_dev);
pci_disable_device(pci_dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册