Re: [PATCH 1/2] net: Assert proper context while calling napi_schedule()

Jakub Kicinski
2025-02-14T22:00:47Z

On Thu, 13 Feb 2025 21:38:12 +0100 Frederic Weisbecker wrote:
> > > Just to make sure I follow the netpoll issue. What would you like to fix
> > > in netpoll exactly?
> >
> > Nothing in netpoll, the problem is that netdevsim calls napi_schedule
> > from the xmit path. That's incompatible with netpoll. We should fix
> > netdevsim instead (unless more real drivers need napi-from-xmit to
> > work).
>
> Let me clarify, because I don't know much this area. If the problem is that xmit
> can't call napi_schedule() by design, then I defer to you. But if the problem is that
> napi_schedule() may or may not be called from an interrupt, please note that
> local_bh_enable() won't run softirqs from a hardirq and will instead defer to
> IRQ tail. So it's fine to do an unconditional pair of local_bh_disable() / local_bh_enable().

I don't know where this is in the code TBH, but my understanding is
that HW IRQs - yes, as you say it'd be safe; the problem is that
we have local_irq_save() all over the place. And that is neither
protected from local_bh_enable(), not does irq_restore execute softirqs.