提交 8c5d9808 编写于 作者: J Johannes Berg 提交者: John W. Linville

cfg80211: fix refcount imbalance when wext is disabled

When CONFIG_CFG80211_WEXT is not set, there is
a refcount imbalance with rdev->opencount, fix
that by moving it out of the ifdef.
Reported-by: NAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 193e70ef
...@@ -745,9 +745,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, ...@@ -745,9 +745,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
mutex_unlock(&rdev->devlist_mtx); mutex_unlock(&rdev->devlist_mtx);
dev_put(dev); dev_put(dev);
} }
#ifdef CONFIG_CFG80211_WEXT
cfg80211_lock_rdev(rdev); cfg80211_lock_rdev(rdev);
mutex_lock(&rdev->devlist_mtx); mutex_lock(&rdev->devlist_mtx);
#ifdef CONFIG_CFG80211_WEXT
wdev_lock(wdev); wdev_lock(wdev);
switch (wdev->iftype) { switch (wdev->iftype) {
case NL80211_IFTYPE_ADHOC: case NL80211_IFTYPE_ADHOC:
...@@ -760,10 +760,10 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, ...@@ -760,10 +760,10 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
break; break;
} }
wdev_unlock(wdev); wdev_unlock(wdev);
#endif
rdev->opencount++; rdev->opencount++;
mutex_unlock(&rdev->devlist_mtx); mutex_unlock(&rdev->devlist_mtx);
cfg80211_unlock_rdev(rdev); cfg80211_unlock_rdev(rdev);
#endif
break; break;
case NETDEV_UNREGISTER: case NETDEV_UNREGISTER:
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册