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

mac80211: fix scan state machine

when we run high bandwidth UDP traffic and we trigger a scan, the scan
state machine seems to be looping in SUSPEND->RESUME->DECISION->SUSPEND
and SET_CHANNEL seems to be never called as 'tx_empty' is never true
while running UDP traffic. fix this by settting SET_CHANNEL state when
we get into RESUME state.

Cc: Leela Kella <leela@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Mohammed Shafi Shajakhan and committed by
John W. Linville
de2ee84d 841f1d92

+1 -1
+1 -1
net/mac80211/scan.c
··· 625 625 local->leave_oper_channel_time = jiffies; 626 626 627 627 /* advance to the next channel to be scanned */ 628 - local->next_scan_state = SCAN_DECISION; 628 + local->next_scan_state = SCAN_SET_CHANNEL; 629 629 } 630 630 631 631 void ieee80211_scan_work(struct work_struct *work)