The timer is supposed to be triggered by carrier detect interrupt. After remove 
the line noise, the carrier detect interrupt is never triggered again, because 
the carrier is always ok and it only trigger the timer once, Since the protocol 
was terminated and no new interrupts happen, the link will never be back. So 
the case here is that the line noise is good and just good to make the carrier 
detect still good  but the protocol fail, the timer will be never triggered 
again.

Of course, if you increase the noise and make even the carrier detect fail, 
then remove the noise, the link will be up, Because the carrier down and up 
again and then trigger the timer to restart.

Denis Du




On Monday, January 22, 2018, 3:25:16 PM EST, David Miller <da...@davemloft.net> 
wrote: 





From: Denis Du <dudenis2...@yahoo.ca>
Date: Tue, 16 Jan 2018 16:58:25 +0000 (UTC)

> From b5902a4dfc709b62b704997ab64f31c9ef69a6db Mon Sep 17 00:00:00 2001
> From: Denis Du <dudenis2...@yahoo.ca>
> Date: Mon, 15 Jan 2018 17:26:06 -0500
> Subject: [PATCH] netdev: carrier detect ok, don't turn off negotiation
> 
> 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 <dudenis2...@yahoo.ca>

The timer is supposed to restart the protocol again, that's how this
whole thing is designed to work.

I think you are making changes to the symptom rather than the true
cause of the problems you are seeing.

Sorry, I will not apply this until the exact issue is better
understood.

Thank you.

Reply via email to