ath9k: Enable multi-channel properly
In MCC mode, currently the decision to enable the multi-channel state machine is done based on the association status if one of the interfaces assigned to a context is in station mode. This allows the driver to switch to the other context before the current station is able to complete the 4-way handshake in case it is required and this causes problems. Instead, enable multi-channel mode when the station moves to the authorized state. This disallows an early switch to the other channel. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
df3c6eb34d
commit
b8f9279be0
@@ -171,7 +171,7 @@ static const char *chanctx_event_string(enum ath_chanctx_event ev)
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_BEACON_SENT);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_TSF_TIMER);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_BEACON_RECEIVED);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_ASSOC);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_AUTHORIZED);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_SWITCH);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_ASSIGN);
|
||||
case_rtn_string(ATH_CHANCTX_EVENT_UNASSIGN);
|
||||
@@ -510,7 +510,7 @@ void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif,
|
||||
|
||||
ath_chanctx_setup_timer(sc, tsf_time);
|
||||
break;
|
||||
case ATH_CHANCTX_EVENT_ASSOC:
|
||||
case ATH_CHANCTX_EVENT_AUTHORIZED:
|
||||
if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE ||
|
||||
avp->chanctx != sc->cur_chan)
|
||||
break;
|
||||
|
Reference in New Issue
Block a user