]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
r8169: fix cable re-plugging issue
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 22 Mar 2019 06:39:35 +0000 (07:39 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 24 Mar 2019 01:26:43 +0000 (21:26 -0400)
Bartek reported that after few cable unplug/replug cycles suddenly
replug isn't detected any longer. His system uses a RTL8106, I wasn't
able to reproduce the issue with RTL8168g. According to his bisect
the referenced commit caused the regression. As Realtek doesn't
release datasheets or errata it's hard to say what's the actual root
cause, but this change was reported to fix the issue.

Fixes: 38caff5a445b ("r8169: handle all interrupt events in the hard irq handler")
Reported-by: Bartosz Skrzypczak <barteks2x@gmail.com>
Suggested-by: Bartosz Skrzypczak <barteks2x@gmail.com>
Tested-by: Bartosz Skrzypczak <barteks2x@gmail.com>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c

index 9dd1cd2c0c6872090d30f910ba3ed9d45c49fb5c..7562ccbbb39af59a2ba0e4078b2f43b2a7376809 100644 (file)
@@ -6542,7 +6542,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
                set_bit(RTL_FLAG_TASK_RESET_PENDING, tp->wk.flags);
        }
 
-       if (status & RTL_EVENT_NAPI) {
+       if (status & (RTL_EVENT_NAPI | LinkChg)) {
                rtl_irq_disable(tp);
                napi_schedule_irqoff(&tp->napi);
        }