Hi, it was noticed that ath10k is actively scanning on DFS channels. This seems to be a bad idea. It looks like the passive flag [1] is only specified when no ssid was requested or when the channel is marked as NO_IR [2]. But interestingly, the channel information for the scan also contains a setting chan_radar. And both information is given to the firmware. How does the firmware react here? Does it really try to stop scanning actively on DFS channels or should the ath10k driver make sure to mark DFS channels also as NO_IR for the scan? At least I would guess that the WMI_CHAN_FLAG_DFS is completely ignored by the scan code of the QCA firmware. diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 541bc1c4b2f7..2e4111040eb4 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -3083,6 +3083,8 @@ static int ath10k_update_channel_list(struct ath10k *ar) !!(channel->flags & IEEE80211_CHAN_RADAR); passive = channel->flags & IEEE80211_CHAN_NO_IR; + passive |= ch->chan_radar; + ch->passive = passive; ch->freq = channel->center_freq; At least mac80211 actually handles both flags the same when it decides for probe vs. simple delay [4] during the scan of a channel Simon can most likely provide more details about the problem. Kind regards, Sven [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wireless/ath/ath10k/mac.c?id=fc36def997cfd6cbff3eda4f82853a5c311c5466#n5737 [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wireless/ath/ath10k/mac.c?id=fc36def997cfd6cbff3eda4f82853a5c311c5466#n3086 [3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wireless/ath/ath10k/wmi.c?id=fc36def997cfd6cbff3eda4f82853a5c311c5466#n1661 [4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/mac80211/scan.c?id=fc36def997cfd6cbff3eda4f82853a5c311c5466#n846
Attachment:
signature.asc
Description: This is a digitally signed message part.