> -----Original Message----- > From: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > Sent: Wednesday, July 22, 2020 6:26 PM > To: Rakesh Pillai <pillair@xxxxxxxxxxxxxx>; ath10k@xxxxxxxxxxxxxxxxxxx > Cc: linux-wireless@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > kvalo@xxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; kuba@xxxxxxxxxx; > netdev@xxxxxxxxxxxxxxx; dianders@xxxxxxxxxxxx; evgreen@xxxxxxxxxxxx > 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: > > 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 <pillair@xxxxxxxxxxxxxx> > > --- > > 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, > > 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