mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 15:34:48 +08:00
ath9k: Fix offchannel flush timeout
An offchannel operation also needs to have a flush timeout that doesn't exceed the NoA absence duration of a GO context, so use channel_switch_time. The first offchannel operation is set a flush timeout of 10ms since channel_switch_time will be zero. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
67259d51df
commit
290c8a77e8
@ -207,6 +207,26 @@ void ath_chanctx_check_active(struct ath_softc *sc, struct ath_chanctx *ctx)
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
if (ctx == &sc->offchannel.chan) {
|
||||
spin_lock_bh(&sc->chan_lock);
|
||||
|
||||
if (likely(sc->sched.channel_switch_time))
|
||||
ctx->flush_timeout =
|
||||
usecs_to_jiffies(sc->sched.channel_switch_time);
|
||||
else
|
||||
ctx->flush_timeout =
|
||||
msecs_to_jiffies(10);
|
||||
|
||||
spin_unlock_bh(&sc->chan_lock);
|
||||
|
||||
/*
|
||||
* There is no need to iterate over the
|
||||
* active/assigned channel contexts if
|
||||
* the current context is offchannel.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
ictx = ctx;
|
||||
|
||||
list_for_each_entry(avp, &ctx->vifs, list) {
|
||||
|
Loading…
Reference in New Issue
Block a user