aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2012-03-12 08:53:04 -0400
committerLuciano Coelho <coelho@ti.com>2012-04-10 05:13:28 -0400
commit446f5ca19aef28fcc3f42e08b0ad8da7cd59114b (patch)
treee29d8ac051aec794ee66b2a26725d605ff0424d9
parent47107e84446f4724d25c724493679cc50eeef53c (diff)
wl12xx: set do_join on BSS_CHANGED_ASSOC
wl12xx sets the do_join flag (which later starts the sta role) when the bssid was changed and the sta is associated. However, this no longer happens after the "mac80211: remove spurious BSSID change flag" patch. Fix it by setting the do_join flag on BSS_CHANGED_ASSOC (for IBSS, do_join is already set on BSS_CHANGED_IBSS) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r--drivers/net/wireless/wl12xx/main.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index b1555fb5815b..a1ede7b48270 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -3791,8 +3791,7 @@ static void wl1271_bss_info_changed_sta(struct wl1271 *wl,
3791 wlvif->rssi_thold = bss_conf->cqm_rssi_thold; 3791 wlvif->rssi_thold = bss_conf->cqm_rssi_thold;
3792 } 3792 }
3793 3793
3794 if (changed & BSS_CHANGED_BSSID && 3794 if (changed & BSS_CHANGED_BSSID)
3795 (is_ibss || bss_conf->assoc))
3796 if (!is_zero_ether_addr(bss_conf->bssid)) { 3795 if (!is_zero_ether_addr(bss_conf->bssid)) {
3797 ret = wl12xx_cmd_build_null_data(wl, wlvif); 3796 ret = wl12xx_cmd_build_null_data(wl, wlvif);
3798 if (ret < 0) 3797 if (ret < 0)
@@ -3801,9 +3800,6 @@ static void wl1271_bss_info_changed_sta(struct wl1271 *wl,
3801 ret = wl1271_build_qos_null_data(wl, vif); 3800 ret = wl1271_build_qos_null_data(wl, vif);
3802 if (ret < 0) 3801 if (ret < 0)
3803 goto out; 3802 goto out;
3804
3805 /* Need to update the BSSID (for filtering etc) */
3806 do_join = true;
3807 } 3803 }
3808 3804
3809 if (changed & (BSS_CHANGED_ASSOC | BSS_CHANGED_HT)) { 3805 if (changed & (BSS_CHANGED_ASSOC | BSS_CHANGED_HT)) {
@@ -3830,6 +3826,7 @@ sta_not_found:
3830 int ieoffset; 3826 int ieoffset;
3831 wlvif->aid = bss_conf->aid; 3827 wlvif->aid = bss_conf->aid;
3832 wlvif->beacon_int = bss_conf->beacon_int; 3828 wlvif->beacon_int = bss_conf->beacon_int;
3829 do_join = true;
3833 set_assoc = true; 3830 set_assoc = true;
3834 3831
3835 /* 3832 /*