提交 b4050790 编写于 作者: B Ben Hutchings 提交者: John W. Linville

ipw2200: Fix order of device registration

Currently cfg80211 fails to create a "phy80211" symlink in sysfs from
the net device to the wiphy device.  The latter needs to be registered
first.

Compile-tested only.
Reported-by: NCesare Leonardi <celeonar@gmail.com>
Signed-off-by: NBen Hutchings <ben@decadent.org.uk>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 f2bd7f16
......@@ -11840,16 +11840,17 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
}
mutex_unlock(&priv->mutex);
err = register_netdev(net_dev);
err = ipw_wdev_init(net_dev);
if (err) {
IPW_ERROR("failed to register network device\n");
IPW_ERROR("failed to register wireless device\n");
goto out_remove_sysfs;
}
err = ipw_wdev_init(net_dev);
err = register_netdev(net_dev);
if (err) {
IPW_ERROR("failed to register wireless device\n");
goto out_unregister_netdev;
IPW_ERROR("failed to register network device\n");
goto out_unregister_wiphy;
}
#ifdef CONFIG_IPW2200_PROMISCUOUS
......@@ -11858,10 +11859,8 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
if (err) {
IPW_ERROR("Failed to register promiscuous network "
"device (error %d).\n", err);
wiphy_unregister(priv->ieee->wdev.wiphy);
kfree(priv->ieee->a_band.channels);
kfree(priv->ieee->bg_band.channels);
goto out_unregister_netdev;
unregister_netdev(priv->net_dev);
goto out_unregister_wiphy;
}
}
#endif
......@@ -11873,8 +11872,10 @@ static int __devinit ipw_pci_probe(struct pci_dev *pdev,
return 0;
out_unregister_netdev:
unregister_netdev(priv->net_dev);
out_unregister_wiphy:
wiphy_unregister(priv->ieee->wdev.wiphy);
kfree(priv->ieee->a_band.channels);
kfree(priv->ieee->bg_band.channels);
out_remove_sysfs:
sysfs_remove_group(&pdev->dev.kobj, &ipw_attribute_group);
out_release_irq:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册