Commit eff1b99a authored by Arend van Spriel's avatar Arend van Spriel Committed by Greg Kroah-Hartman

staging: brcm80211: allow changing channel by mac80211 when associated

When associated on 5G the driver receives a probe request for 2G with
a 2G rate specified. The driver asserts as the operating band is still
5G when the probe request packet is given. Root cause was that ioctl
function did fail upon setting the channel as requested by mac80211
when we are associated.
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f3171549
...@@ -111,7 +111,6 @@ struct wlc_bsscfg { ...@@ -111,7 +111,6 @@ struct wlc_bsscfg {
pmkid_t pmkid[MAXPMKID]; /* PMKID cache */ pmkid_t pmkid[MAXPMKID]; /* PMKID cache */
uint npmkid; /* num cached PMKIDs */ uint npmkid; /* num cached PMKIDs */
wlc_bss_info_t *target_bss; /* BSS parms during tran. to ASSOCIATED state */
wlc_bss_info_t *current_bss; /* BSS parms in ASSOCIATED state */ wlc_bss_info_t *current_bss; /* BSS parms in ASSOCIATED state */
/* PM states */ /* PM states */
......
...@@ -789,7 +789,7 @@ void wlc_set_home_chanspec(struct wlc_info *wlc, chanspec_t chanspec) ...@@ -789,7 +789,7 @@ void wlc_set_home_chanspec(struct wlc_info *wlc, chanspec_t chanspec)
FOREACH_BSS(wlc, idx, cfg) { FOREACH_BSS(wlc, idx, cfg) {
if (!cfg->associated) if (!cfg->associated)
continue; continue;
cfg->target_bss->chanspec = chanspec;
cfg->current_bss->chanspec = chanspec; cfg->current_bss->chanspec = chanspec;
} }
...@@ -3209,7 +3209,7 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len, ...@@ -3209,7 +3209,7 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len,
wlc->default_bss->chanspec = chspec; wlc->default_bss->chanspec = chspec;
/* wlc_BSSinit() will sanitize the rateset before using it.. */ /* wlc_BSSinit() will sanitize the rateset before using it.. */
if (wlc->pub->up && !wlc->pub->associated && if (wlc->pub->up &&
(WLC_BAND_PI_RADIO_CHANSPEC != chspec)) { (WLC_BAND_PI_RADIO_CHANSPEC != chspec)) {
wlc_set_home_chanspec(wlc, chspec); wlc_set_home_chanspec(wlc, chspec);
wlc_suspend_mac_and_wait(wlc); wlc_suspend_mac_and_wait(wlc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment