Sujith Manoharan wrote:
> From: Sujith Manoharan <[email protected]>
> 
> When the current operating channel context has
> been marked as ATH_CHANCTX_STATE_FORCE_ACTIVE,
> do not process beacons that might be received,
> since we have to wait for the station to become
> authorized.
> 
> Signed-off-by: Sujith Manoharan <[email protected]>
> ---
>  drivers/net/wireless/ath/ath9k/channel.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/channel.c 
> b/drivers/net/wireless/ath/ath9k/channel.c
> index 16bed6a..55f2369 100644
> --- a/drivers/net/wireless/ath/ath9k/channel.c
> +++ b/drivers/net/wireless/ath/ath9k/channel.c
> @@ -492,7 +492,8 @@ void ath_chanctx_event(struct ath_softc *sc, struct 
> ieee80211_vif *vif,
>               break;
>       case ATH_CHANCTX_EVENT_BEACON_RECEIVED:
>               if (!test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags) ||
> -                 sc->cur_chan == &sc->offchannel.chan)
> +                 sc->cur_chan == &sc->offchannel.chan ||
> +                 sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE)
>                       break;

The check for FORCE_ACTIVE needs to be done after we set
beacon_miss/beacon_pending to zero.

Also, since we now have a small window where we start receiving
beacons while waiting for the handshake to complete, we
end up rearming the timer based on the cached tsf_val of the current
channel. But, since it will be zero the first time the
context becomes active, the timeout value is assigned
spurious values.

I'll address both these issues and send a v2.

Sujith
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to