diff options
author | Zhu Yi <yi.zhu@intel.com> | 2006-08-20 23:38:52 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-08-29 17:06:33 -0400 |
commit | efbd809829001c94e48b96337ea05a16d5ecee85 (patch) | |
tree | 0ff04bf837a98d6f0dc3cba6154b8a373e7de8a6 /drivers/net/wireless/ipw2100.c | |
parent | c8c22c942e46ca0e06fc7c72845314da1ad41702 (diff) |
[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.c | 5 |
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, | |||
6254 | * member to call a function that then just turns and calls ipw2100_up. | 6254 | * member to call a function that then just turns and calls ipw2100_up. |
6255 | * net_dev->init is called after name allocation but before the | 6255 | * net_dev->init is called after name allocation but before the |
6256 | * notifier chain is called */ | 6256 | * notifier chain is called */ |
6257 | mutex_lock(&priv->action_mutex); | ||
6258 | err = register_netdev(dev); | 6257 | err = register_netdev(dev); |
6259 | if (err) { | 6258 | if (err) { |
6260 | printk(KERN_WARNING DRV_NAME | 6259 | printk(KERN_WARNING DRV_NAME |
6261 | "Error calling register_netdev.\n"); | 6260 | "Error calling register_netdev.\n"); |
6262 | goto fail_unlock; | 6261 | goto fail; |
6263 | } | 6262 | } |
6263 | |||
6264 | mutex_lock(&priv->action_mutex); | ||
6264 | registered = 1; | 6265 | registered = 1; |
6265 | 6266 | ||
6266 | IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev)); | 6267 | IPW_DEBUG_INFO("%s: Bound to %s\n", dev->name, pci_name(pci_dev)); |