Message ID | 1462893136-16051-1-git-send-email-mohammed@qca.qualcomm.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> wrote: > From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> > > WARN_ON_ONCE when we receive packets for self peer when mac80211 > had not assigned a proper channel context. This scenario happens > in QCA4019 when we start the AP via hostapd in background and start > it once again in the background without killing the previous instance! > This happens intermittently when we start / stop hostapd in a while loop > (incase the hostapd is not properly killed). This results in mac80211 > chancontext to be unassigned, while the self peer continuous receive > packets in target operating channel. This results in lot of call traces > in the rx path. Make this as a WARN_ON_ONCE to avoid flooding the console > which result in rebooting low memory systems, while still reporting the > warning once that we are receiving packets in target operating channel and > to indicate that something is happening which is not the expected result. > > WARNING: CPU: 0 PID: 0 at ath/ath10k/htt_rx.c:803 > [<c0318838>] (warn_slowpath_null) from [<bf4a0104>] > (ath10k_htt_rx_h_channel+0xe0/0x1b8 [ath10k_core]) > [<bf4a0104>] (ath10k_htt_rx_h_channel [ath10k_core]) from > [<bf4a025c>] (ath10k_htt_rx_h_ppdu+0x80/0x288 [ath10k_core]) > [<bf4a025c>] (ath10k_htt_rx_h_ppdu [ath10k_core]) from > [<bf4a1a9c>] (ath10k_htt_txrx_compl_task+0x724/0x9d4 [ath10k_core]) > [<bf4a1a9c>] (ath10k_htt_txrx_compl_task [ath10k_core]) > > Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> Thanks, 1 patch applied to ath.git: 3b0499e9ce42 ath10k: reduce warning messages during rx without proper channel context
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c index cc979a4..77d9200 100644 --- a/drivers/net/wireless/ath/ath10k/htt_rx.c +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -748,7 +748,7 @@ ath10k_htt_rx_h_peer_channel(struct ath10k *ar, struct htt_rx_desc *rxd) if (WARN_ON_ONCE(!arvif)) return NULL; - if (WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) + if (WARN_ON_ONCE(ath10k_mac_vif_chan(arvif->vif, &def))) return NULL; return def.chan;