[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#656331: RTL8168b/8111b with ASUS M2A-VM (SB600): Network device stays down after resume



Paul Menzel <pm.debian@googlemail.com> :
[forget runtime PM]
>         [18764.958557] r8169 0000:02:00.0: PME# disabled
>         [18781.998004] r8169 0000:02:00.0: eth0: link down
                     ^^
>         [18781.998024] r8169 0000:02:00.0: eth0: link down
                     ^^
Two link events within 20 us. /me wonders...

The datasheet states "[the PHYStatus] register is updated continuously at
maximum periods of 300us." but it is far from clear that the coherency
with the interrupt status register can be taken for granted. Hayes ?

Paul, can you try the hack below ?

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 7a0c800..6daca05 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -1278,6 +1278,7 @@ static void __rtl8169_check_link_status(struct net_device *dev,
 {
 	unsigned long flags;
 
+	udelay(500);
 	spin_lock_irqsave(&tp->lock, flags);
 	if (tp->link_ok(ioaddr)) {
 		rtl_link_chg_patch(tp);



Reply to: