wl12xx: don't join upon disassociation

wl12xx "rejoins" upon every BSS_CHANGED_BSSID notification.
However, there is no need to rejoin after disassociation, so just
filter out the case when the new bssid is 00:00:00:00:00:00.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
Eliad Peller 2010-12-26 09:27:50 +01:00 committed by Luciano Coelho
parent 2354b9fdda
commit fa287b8f29

View File

@ -2266,19 +2266,21 @@ static void wl1271_bss_info_changed_sta(struct wl1271 *wl,
memcmp(wl->bssid, bss_conf->bssid, ETH_ALEN)) {
memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN);
ret = wl1271_cmd_build_null_data(wl);
if (ret < 0)
goto out;
if (!is_zero_ether_addr(wl->bssid)) {
ret = wl1271_cmd_build_null_data(wl);
if (ret < 0)
goto out;
ret = wl1271_build_qos_null_data(wl);
if (ret < 0)
goto out;
ret = wl1271_build_qos_null_data(wl);
if (ret < 0)
goto out;
/* filter out all packets not from this BSSID */
wl1271_configure_filters(wl, 0);
/* filter out all packets not from this BSSID */
wl1271_configure_filters(wl, 0);
/* Need to update the BSSID (for filtering etc) */
do_join = true;
/* Need to update the BSSID (for filtering etc) */
do_join = true;
}
}
if ((changed & BSS_CHANGED_ASSOC)) {