You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
ath9k: Clear offchannel state properly
When a pending roc or scan operation is cancelled, the offchannel operation is cleared, but the offchannel state in the main scheduler is not cleared. This causes problems since an active GO will try to process a stale offchannel request that was deferred earlier. Fix this by clearing the state when there is no pending offchannel (roc/scan) operation. 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
89b6e35c20
commit
e21a1d8b2b
@@ -900,6 +900,11 @@ void ath_offchannel_next(struct ath_softc *sc)
|
||||
sc->offchannel.state = ATH_OFFCHANNEL_ROC_START;
|
||||
ath_chanctx_offchan_switch(sc, sc->offchannel.roc_chan);
|
||||
} else {
|
||||
spin_lock_bh(&sc->chan_lock);
|
||||
sc->sched.offchannel_pending = false;
|
||||
sc->sched.wait_switch = false;
|
||||
spin_unlock_bh(&sc->chan_lock);
|
||||
|
||||
ath_chanctx_switch(sc, ath_chanctx_get_oper_chan(sc, false),
|
||||
NULL);
|
||||
sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
|
||||
|
||||
Reference in New Issue
Block a user