12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- From: Sujith Manoharan <[email protected]>
- Date: Fri, 17 Oct 2014 07:40:17 +0530
- Subject: [PATCH] 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 <[email protected]>
- ---
- --- a/drivers/net/wireless/ath/ath9k/channel.c
- +++ b/drivers/net/wireless/ath/ath9k/channel.c
- @@ -207,6 +207,26 @@ void ath_chanctx_check_active(struct ath
- 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) {
|