On 16.10.2020 13:26, Mike Galbraith wrote: > > When the kernel is built with PREEMPT_RT or booted with threadirqs, > irqs are not disabled when rtl8169_interrupt() is called, inspiring > __raise_softirq_irqoff() to gripe. Use plain napi_schedule(). >
I'm aware of the topic, but missing the benefits of the irqoff version unconditionally doesn't seem to be the best option. See also: https://lore.kernel.org/linux-arm-kernel/20201008162749.860521-1-j...@metanate.com/ Needed is a function that dynamically picks the right version. > Signed-off-by: Mike Galbraith <efa...@gmx.de> > --- > drivers/net/ethernet/realtek/r8169_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/drivers/net/ethernet/realtek/r8169_main.c > +++ b/drivers/net/ethernet/realtek/r8169_main.c > @@ -4573,7 +4573,7 @@ static irqreturn_t rtl8169_interrupt(int > } > > rtl_irq_disable(tp); > - napi_schedule_irqoff(&tp->napi); > + napi_schedule(&tp->napi); > out: > rtl_ack_events(tp, status); > >