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