nl80211: fix error in generic netif_running check
authorJohannes Berg <johannes.berg@intel.com>
Tue, 5 Oct 2010 19:34:11 +0000 (21:34 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 6 Oct 2010 20:30:41 +0000 (16:30 -0400)
Yikes! The error return keeps a netdev reference
and the rdev mutex locked, fix that!

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/nl80211.c

index 8826888cc14e1dc107528bd3c7b91b83debc1e1e..9942f0b061ff78555d2cd0f0e57705e67637f233 100644 (file)
@@ -4418,6 +4418,8 @@ static int nl80211_pre_doit(struct genl_ops *ops, struct sk_buff *skb,
                }
                if (ops->internal_flags & NL80211_FLAG_CHECK_NETDEV_UP &&
                    !netif_running(dev)) {
+                       cfg80211_unlock_rdev(rdev);
+                       dev_put(dev);
                        if (rtnl)
                                rtnl_unlock();
                        return -ENETDOWN;