OSDN Git Service

r8169: don't try to disable interrupts if NAPI is scheduled already
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 5 Feb 2021 21:48:53 +0000 (22:48 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 6 Feb 2021 23:12:39 +0000 (15:12 -0800)
There's no benefit in trying to disable interrupts if NAPI is
scheduled already. This allows us to save a PCI write in this case.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/78c7f2fb-9772-1015-8c1d-632cbdff253f@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_main.c

index 7b053a1..0423158 100644 (file)
@@ -4549,8 +4549,10 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
                rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
        }
 
-       rtl_irq_disable(tp);
-       napi_schedule(&tp->napi);
+       if (napi_schedule_prep(&tp->napi)) {
+               rtl_irq_disable(tp);
+               __napi_schedule(&tp->napi);
+       }
 out:
        rtl_ack_events(tp, status);