RE: [RFC 1/7] mac80211: Add check for napi handle before WARN_ON
From: Rakesh Pillai <hidden>
Date: 2020-07-23 18:26:27
Also in:
linux-wireless, lkml
-----Original Message----- From: Johannes Berg <johannes@sipsolutions.net> Sent: Wednesday, July 22, 2020 6:26 PM To: Rakesh Pillai <redacted>; ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org; linux-kernel@vger.kernel.org; kvalo@codeaurora.org; davem@davemloft.net; kuba@kernel.org; netdev@vger.kernel.org; dianders@chromium.org; evgreen@chromium.org Subject: Re: [RFC 1/7] mac80211: Add check for napi handle before WARN_ON On Tue, 2020-07-21 at 22:44 +0530, Rakesh Pillai wrote:quoted
The function ieee80211_rx_napi can be now called from a thread context as well, with napi context being NULL. Hence add the napi context check before giving out a warning for softirq count being 0. Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1 Signed-off-by: Rakesh Pillai <redacted> --- net/mac80211/rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index a88ab6f..1e703f1 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c@@ -4652,7 +4652,7 @@ void ieee80211_rx_napi(struct ieee80211_hw*hw, struct ieee80211_sta *pubsta,quoted
struct ieee80211_supported_band *sband; struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); - WARN_ON_ONCE(softirq_count() == 0); + WARN_ON_ONCE(napi && softirq_count() == 0);FWIW, I'm pretty sure this is incorrect - we make assumptions on softirqs being disabled in mac80211 for serialization and in place of some locking, I believe.
I checked this, but let me double confirm. But after this change, no packet is submitted from driver in a softirq context. So ideally this should take care of serialization.
johannes