diff mbox series

[net] r8169: fix cable re-plugging issue

Message ID 47c70ff0-a38d-8689-2f31-ce6eb71bacb8@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] r8169: fix cable re-plugging issue | expand

Commit Message

Heiner Kallweit March 22, 2019, 6:39 a.m. UTC
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>
---
 drivers/net/ethernet/realtek/r8169.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Miller March 24, 2019, 1:32 a.m. UTC | #1
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Fri, 22 Mar 2019 07:39:35 +0100

> 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>

Applied and queued up for -stable, thanks Heiner.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index a542cd121..a8ca26c2a 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -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);
 	}