Search Linux Wireless

Re: pull-request: mac80211-next 2012-07-10

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2012-07-12 at 11:27 +0200, Johannes Berg wrote:
> On Tue, 2012-07-10 at 20:48 +0200, Johannes Berg wrote:
> > John,
> > 
> > Please pull some more patches. I've included the first round of API
> > additions/updates for the P2P Device abstraction, I don't know if we'll
> > get the actual code done in time for 3.6 but I didn't want to hang on to
> > these APIs for too long to avoid conflicts.
> 
> Ugh, I found a bug with this, please drop, I'll respin. Sorry!

Ok the bug is this -- if we remove a wdev (that doesn't have a netdev),
this change is obviously needed:


diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 27cd18e..70452aa 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -6768,6 +6768,7 @@ static int nl80211_pre_doit(struct genl_ops *ops, struct sk_buff *skb,
 			info->user_ptr[1] = dev;
 		} else {
 			info->user_ptr[1] = wdev;
+			info->user_ptr[2] = wdev->netdev;
 		}
 
 		if (dev) {
@@ -6799,10 +6800,8 @@ static void nl80211_post_doit(struct genl_ops *ops, struct sk_buff *skb,
 		cfg80211_unlock_rdev(info->user_ptr[0]);
 	if (info->user_ptr[1]) {
 		if (ops->internal_flags & NL80211_FLAG_NEED_WDEV) {
-			struct wireless_dev *wdev = info->user_ptr[1];
-
-			if (wdev->netdev)
-				dev_put(wdev->netdev);
+			if (info->user_ptr[2])
+				dev_put(info->user_ptr[2]);
 		} else {
 			dev_put(info->user_ptr[1]);
 		}


I've rolled it into the patch that introduced the bug ("nl80211: add
NL80211_FLAG_NEED_WDEV") and will send a new pull request. Obviously,
I'm therefore rebasing my tree.

Sorry for the inconvenience!

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux