Thread (37 messages) 37 messages, 12 authors, 2021-03-25

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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help