summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2011-02-22 11:12:09 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-23 14:07:30 -0800
commiteff1b99a6fc8eb25913fab7cd30eaeb6ca91349a (patch)
treeff8c3d59ae23aa6e2bb28aae290f50a0696ff0ad
parentf317154929f87d2fe799179761d1b639af33de74 (diff)
downloadlinux-eff1b99a6fc8eb25913fab7cd30eaeb6ca91349a.tar.gz
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: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_bsscfg.h1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c4
2 files changed, 2 insertions, 3 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bsscfg.h b/drivers/staging/brcm80211/brcmsmac/wlc_bsscfg.h
index 0bb4a212dd71..8096b0f52156 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_bsscfg.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_bsscfg.h
@@ -111,7 +111,6 @@ struct wlc_bsscfg {
pmkid_t pmkid[MAXPMKID]; /* PMKID cache */
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 */
/* PM states */
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
index 05bcda3b3791..fc3c6ab81d2e 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
@@ -789,7 +789,7 @@ void wlc_set_home_chanspec(struct wlc_info *wlc, chanspec_t chanspec)
FOREACH_BSS(wlc, idx, cfg) {
if (!cfg->associated)
continue;
- cfg->target_bss->chanspec = chanspec;
+
cfg->current_bss->chanspec = chanspec;
}
@@ -3209,7 +3209,7 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len,
wlc->default_bss->chanspec = chspec;
/* 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_set_home_chanspec(wlc, chspec);
wlc_suspend_mac_and_wait(wlc);