On Mon, 2012-07-02 at 14:42 +0300, Eliad Peller wrote: > If association failed due to internal error (e.g. no > supported rates IE), we call ieee80211_destroy_assoc_data() > with assoc=true, while we actually reject the association. > > This results in the BSSID not being zeroed out. > > After passing assoc=false, we no longer have to call > sta_info_destroy_addr() explicitly. While on it, move > the "associated" message after the assoc_success check. > > Cc: stable@xxxxxxxxxxxxxxx [3.4+] > Signed-off-by: Eliad Peller <eliad@xxxxxxxxxx> Yes, good catch Reviewed-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> John, can you pick this up for 3.5? Thanks! johannes > --- > net/mac80211/mlme.c | 6 ++---- > 1 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c > index a91c888..a2c48ff 100644 > --- a/net/mac80211/mlme.c > +++ b/net/mac80211/mlme.c > @@ -2174,15 +2174,13 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata, > mgmt->sa, status_code); > ieee80211_destroy_assoc_data(sdata, false); > } else { > - sdata_info(sdata, "associated\n"); > - > if (!ieee80211_assoc_success(sdata, *bss, mgmt, len)) { > /* oops -- internal error -- send timeout for now */ > - ieee80211_destroy_assoc_data(sdata, true); > - sta_info_destroy_addr(sdata, mgmt->bssid); > + ieee80211_destroy_assoc_data(sdata, false); > cfg80211_put_bss(*bss); > return RX_MGMT_CFG80211_ASSOC_TIMEOUT; > } > + sdata_info(sdata, "associated\n"); > > /* > * destroy assoc_data afterwards, as otherwise an idle -- 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