Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ath9k: Fix offchannel operation

When multiple channel contexts are active, an offchannel
request will not be handled immediately, but will be
queued to be handled later. But, currently, the channel definition
is not copied to the local offchannel state. This
breaks operation like scanning when MCC is active.

Fix this by storing the offchannel parameters properly.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Sujith Manoharan and committed by
John W. Linville
da0162f3 a4027644

+4
+4
drivers/net/wireless/ath/ath9k/channel.c
··· 588 588 if (test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags) && 589 589 (sc->cur_chan != ctx) && (ctx == &sc->offchannel.chan)) { 590 590 sc->sched.offchannel_pending = true; 591 + if (chandef) 592 + ctx->chandef = *chandef; 591 593 spin_unlock_bh(&sc->chan_lock); 594 + ath_dbg(common, CHAN_CTX, 595 + "Set offchannel_pending to true\n"); 592 596 return; 593 597 } 594 598