On Tue, 2013-06-18 at 09:33 -0700, Ben Greear wrote: > On 06/18/2013 08:26 AM, Johannes Berg wrote: > > On Mon, 2013-06-17 at 14:32 -0700, greearb@xxxxxxxxxxxxxxx wrote: > > > >> static void ieee80211_destroy_assoc_data(struct ieee80211_sub_if_data *sdata, > >> - bool assoc) > >> + bool assoc, bool put_bss) > > > > Do we _really_ need another argument? Shouldn't it always be put in the > > non-assoc case anyway, at least if non-NULL? > > I don't think so. Check out the ieee80211_rx_mgmt_assoc_resp method. > > if (status_code != WLAN_STATUS_SUCCESS) { > sdata_info(sdata, "%pM denied association (code=%d)\n", > mgmt->sa, status_code); > ieee80211_destroy_assoc_data(sdata, false, false); > > This passes in false as 'assoc', but we should not free bss here because > it is being passed back to the calling method, and the return > code of RX_MGMT_CFG80211_RX_ASSOC means bss should eventually > be consumed by the cfg80211 logic. > > Of course, this is all 'as far as I can tell'. > > I sort of like the second boolean because it forces the caller to > think about whether bss should be freed or not... I just posted a patch to hand it back and never free it in mac80211 at all, that also allows cfg80211_hold_bss() it across the assoc process which fixes a (possibly more theoretical) expiry issue. 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