]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
hdlc_ppp: carrier detect ok, don't turn off negotiation
authorDenis Du <dudenis2000@yahoo.ca>
Sat, 24 Feb 2018 21:51:42 +0000 (16:51 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Feb 2018 19:38:12 +0000 (14:38 -0500)
Sometimes when physical lines have a just good noise to make the protocol
handshaking fail, but the carrier detect still good. Then after remove of
the noise, nobody will trigger this protocol to be start again to cause
the link to never come back. The fix is when the carrier is still on, not
terminate the protocol handshaking.

Signed-off-by: Denis Du <dudenis2000@yahoo.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/hdlc_ppp.c

index afeca6bcdade60a45fb6588cb69e69e32014cc7f..ab8b3cbbb205cc42f2bea15259bee0b77c2ff055 100644 (file)
@@ -574,7 +574,10 @@ static void ppp_timer(struct timer_list *t)
                        ppp_cp_event(proto->dev, proto->pid, TO_GOOD, 0, 0,
                                     0, NULL);
                        proto->restart_counter--;
-               } else
+               } else if (netif_carrier_ok(proto->dev))
+                       ppp_cp_event(proto->dev, proto->pid, TO_GOOD, 0, 0,
+                                    0, NULL);
+               else
                        ppp_cp_event(proto->dev, proto->pid, TO_BAD, 0, 0,
                                     0, NULL);
                break;