Subject: Re: [RFC PATCH net-next 1/2] net: napi: Fix interrupts permanently disabled during busy poll

From: Jakub Kicinski <[email-masked]>
Date: Wed, 29 Apr 2026 15:52:25 -0700

On Wed, 29 Apr 2026 08:13:55 +0000 Dragos Tatulea wrote:
> On Tue, Apr 28, 2026 at 05:31:54PM -0700, Jakub Kicinski wrote:
> > On Tue, 28 Apr 2026 20:04:13 -0400 Martin Karsten wrote:  
> > > Labelling this with number 4. might be misleading, sorry! The concern is 
> > > that a short enough timer (compared to the duration of the driver poll) 
> > > can be triggered before the NAPI_STATE_SCHED bit is cleared at the end 
> > > of Step 3.3.  
> > 
> > Ah. Just say that :D Two pages of buggy text, y'all would have been
> > better off using this one paragraph as the commit message.
> > Please don't use AI for generating commit messages if that's the cause.
> > It really is spectacularly shit at it.  
> I take the blame for this. Funnily enough, the text was written mostly
> without AI... Just wanted to present the interactions in a more explanatory
> way.

Heh, I guess I blame everything on AI these days :)

> Do you prefer the short version from Martin or an improved version of
> the long explanation?

That's what I'd do. The explanation should focus on the fact that the
current code arms the timer before it releases the ownership (clearing
STATE_SCHED). The intention of the __busy_poll_stop() outro is to either
schedule NAPI, arm the IRQ or the timer.