On Thu, 2011-12-08 at 14:03 +0530, Vasanthakumar Thiagarajan wrote: > On Wed, Dec 07, 2011 at 09:00:53PM +0530, Vasanthakumar Thiagarajan wrote: > > > > nl80211_send_roamed(wiphy_to_dev(wdev->wiphy), wdev->netdev, bssid, > > > > req_ie, req_ie_len, resp_ie, resp_ie_len, > > > > GFP_KERNEL); > > > > @@ -615,40 +612,65 @@ void __cfg80211_roamed(struct wireless_dev *wdev, > > > > wdev->wext.prev_bssid_valid = true; > > > > wireless_send_event(wdev->netdev, SIOCGIWAP, &wrqu, NULL); > > > > #endif > > > > + > > > > + return; > > > > +out: > > > > + if (bss) > > > > + cfg80211_put_bss(bss); > > > > } > > > > > > Doesn't that leak the reference if you return? It'll also give you an > > > smatch warning since the function assumes the "bss" pointer that was > > > passed in is not NULL, no? > > > > Oops, sorry, i'll fix it. I may need to run smatch as well. > > Wait, actually we are not leaking the bss reference if we return > after a successful roam notification. The reference to the current > bss is released whenever we disconnect from it. Oh, sorry! Yes, you're right, we should keep the reference unless we failed the function for some reason. 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