summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ipw2100.c
diff options
context:
space:
mode:
authorZhu Yi <yi.zhu@intel.com>2006-08-21 05:38:52 +0200
committerJohn W. Linville <linville@tuxdriver.com>2006-08-29 23:06:33 +0200
commitefbd809829001c94e48b96337ea05a16d5ecee85 (patch)
tree0ff04bf837a98d6f0dc3cba6154b8a373e7de8a6 /drivers/net/wireless/ipw2100.c
parent[PATCH] ipw2200: Add pci .shutdown handler (diff)
downloadlinux-efbd809829001c94e48b96337ea05a16d5ecee85.tar.xz
linux-efbd809829001c94e48b96337ea05a16d5ecee85.zip
[PATCH] ipw2100: Fix deadlock detected by lockdep
Fix by removing dependency between priv->action_sem and rtnl semaphore. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2100.c')
-rw-r--r--drivers/net/wireless/ipw2100.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index e955db435b30..5d5dab6a209c 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6254,13 +6254,14 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
* member to call a function that then just turns and calls ipw2100_up.
* net_dev->init is called after name allocation but before the
* notifier chain is called */
- mutex_lock(&priv->action_mutex);
err = register_netdev(dev);
if (err) {
printk(KERN_WARNING DRV_NAME
"Error calling register_netdev.\n");
- goto fail_unlock;
+ goto fail;
}
+
+ mutex_lock(&priv->action_mutex);
registered = 1;
IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev));