mirror of https://gitee.com/openkylin/linux.git
wl1271: Fix channel changing code
The channel changing code would a) change the BSSID to a dummy on upon channel change, breaking connectivity, and b) not update the channel number at all for ad-hoc, breaking adhoc. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d8c42c0c28
commit
ddb01a5b36
|
@ -1234,8 +1234,16 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
|
|||
}
|
||||
|
||||
/* if the channel changes while joined, join again */
|
||||
if (channel != wl->channel && test_bit(WL1271_FLAG_JOINED, &wl->flags))
|
||||
wl1271_join_channel(wl, channel);
|
||||
if (channel != wl->channel &&
|
||||
test_bit(WL1271_FLAG_JOINED, &wl->flags)) {
|
||||
wl->channel = channel;
|
||||
/* FIXME: maybe use CMD_CHANNEL_SWITCH for this? */
|
||||
ret = wl1271_cmd_join(wl);
|
||||
if (ret < 0)
|
||||
wl1271_warning("cmd join to update channel failed %d",
|
||||
ret);
|
||||
} else
|
||||
wl->channel = channel;
|
||||
|
||||
if (conf->flags & IEEE80211_CONF_PS &&
|
||||
!test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags)) {
|
||||
|
|
Loading…
Reference in New Issue