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 <hkallwe...@gmail.com>
---
 drivers/net/ethernet/realtek/r8169_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169_main.c 
b/drivers/net/ethernet/realtek/r8169_main.c
index eb4c2e678..c15c285a0 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4544,8 +4544,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);
 
-- 
2.30.0


Reply via email to