Commit 019d077a authored by Francois Romieu's avatar 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: default avatarFrancois Romieu <romieu@fr.zoreil.com>
Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
parent 9b717075
...@@ -6421,50 +6421,46 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev, ...@@ -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) static void __devexit ipw2100_pci_remove_one(struct pci_dev *pci_dev)
{ {
struct ipw2100_priv *priv = pci_get_drvdata(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 #ifdef CONFIG_PM
if (ipw2100_firmware.version) if (ipw2100_firmware.version)
ipw2100_release_firmware(priv, &ipw2100_firmware); ipw2100_release_firmware(priv, &ipw2100_firmware);
#endif #endif
/* Take down the hardware */ /* Take down the hardware */
ipw2100_down(priv); ipw2100_down(priv);
/* Release the mutex so that the network subsystem can /* Release the mutex so that the network subsystem can
* complete any needed calls into the driver... */ * complete any needed calls into the driver... */
mutex_unlock(&priv->action_mutex); mutex_unlock(&priv->action_mutex);
/* Unregister the device first - this results in close() /* Unregister the device first - this results in close()
* being called if the device is open. If we free storage * being called if the device is open. If we free storage
* first, then close() will crash. */ * first, then close() will crash.
unregister_netdev(dev); * 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 */ /* Free potential debugging firmware snapshot */
ipw2100_snapshot_free(priv); 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 needs to be here, before free_libipw */
wiphy_unregister(priv->ieee->wdev.wiphy); wiphy_unregister(priv->ieee->wdev.wiphy);
kfree(priv->ieee->bg_band.channels); kfree(priv->ieee->bg_band.channels);
free_libipw(dev, 0); free_libipw(dev, 0);
}
pci_release_regions(pci_dev); pci_release_regions(pci_dev);
pci_disable_device(pci_dev); pci_disable_device(pci_dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment