OSDN Git Service

r8169: improve spurious interrupt detection
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 15 Dec 2018 15:25:05 +0000 (16:25 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 15 Dec 2018 19:22:48 +0000 (11:22 -0800)
Improve detection of spurious interrupts by checking against the
interrupt mask as currently set in the chip.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c

index e26c48b..18e39e5 100644 (file)
@@ -6405,8 +6405,9 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 {
        struct rtl8169_private *tp = dev_instance;
        u16 status = rtl_get_events(tp);
+       u16 irq_mask = RTL_R16(tp, IntrMask);
 
-       if (status == 0xffff || !(status & tp->irq_mask))
+       if (status == 0xffff || !(status & irq_mask))
                return IRQ_NONE;
 
        if (unlikely(status & SYSErr)) {