ipw2200: fix oops on missing firmware
For non-monitor interfaces, the syntax for alloc_ieee80211/free_80211 is wrong. Because alloc_ieee80211 only creates (wiphy_new) a wiphy, but free_80211() does wiphy_unregister() also. This is only correct when the later wiphy_register() is called successfully, which apparently is not the case for your fw doesn't exist one. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
@@ -6325,8 +6325,10 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
|
||||
|
||||
fail:
|
||||
if (dev) {
|
||||
if (registered)
|
||||
if (registered) {
|
||||
unregister_ieee80211(priv->ieee);
|
||||
unregister_netdev(dev);
|
||||
}
|
||||
|
||||
ipw2100_hw_stop_adapter(priv);
|
||||
|
||||
@@ -6383,6 +6385,7 @@ static void __devexit ipw2100_pci_remove_one(struct pci_dev *pci_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. */
|
||||
unregister_ieee80211(priv->ieee);
|
||||
unregister_netdev(dev);
|
||||
|
||||
/* ipw2100_down will ensure that there is no more pending work
|
||||
|
Reference in New Issue
Block a user