From: Denis Du <dudenis2000@yahoo.ca>
To: David Miller <davem@davemloft.net>
Cc: khc@pm.waw.pl, netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Carrier detect ok, don't turn off negotiation
Date: Tue, 23 Jan 2018 17:08:10 +0000 (UTC) [thread overview]
Message-ID: <998451043.3408644.1516727290310@mail.yahoo.com> (raw)
In-Reply-To: <20180122.152513.1108868799788445512.davem@davemloft.net>
Ok, I check the source code again. It have nothing to do with the interrupts, it is related how the hdlc.c is implemented.
In drivers/net/wan/hdlc.c#L108
if (hdlc->carrier == on)
goto carrier_exit; /* no change in DCD line level */
hdlc->carrier = on;
if (!hdlc->open)
goto carrier_exit;
if (hdlc->carrier) {
netdev_info(dev, "Carrier detected\n");
hdlc_proto_start(dev);
} else {
netdev_info(dev, "Carrier lost\n");
hdlc_proto_stop(dev);
}
carrier_exit:
spin_unlock_irqrestore(&hdlc->state_lock, flags);
return NOTIFY_DONE;
>From the above code, I can get that only Carrier have some change, it will restart the protocol by hdlc_proto_start(dev);and thus the timer, the previous timer expired due to protocol fail.
If carrier keep no change by if (hdlc->carrier == on)
goto carrier_exit; /* no change in DCD line level */It will do nothing, not start any new protocol and thus the timer.
My case is the carrier always good, but protocol will fail due to perfect noise, and this issue was found and complained by our customers. So it is not my theory guessing, it is a real problem.
On Monday, January 22, 2018, 3:25:16 PM EST, David Miller <davem@davemloft.net> wrote:
From: Denis Du <dudenis2000@yahoo.ca>
Date: Tue, 16 Jan 2018 16:58:25 +0000 (UTC)
> From b5902a4dfc709b62b704997ab64f31c9ef69a6db Mon Sep 17 00:00:00 2001
> From: Denis Du <dudenis2000@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 <dudenis2000@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.
next prev parent reply other threads:[~2018-01-23 17:08 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <751079597.1884905.1516121905374.ref@mail.yahoo.com>
2018-01-16 16:58 ` Denis Du
2018-01-22 20:25 ` David Miller
2018-01-22 22:17 ` Denis Du
2018-01-23 17:08 ` Denis Du [this message]
2018-01-28 14:24 ` Krzysztof Halasa
2018-02-06 15:18 ` Denis Du
[not found] ` <438911112.3985245.1517930128335@mail.yahoo.com>
2018-02-06 15:29 ` David Miller
2018-02-06 16:50 ` Denis Du
2018-02-21 3:35 ` Denis Du
2018-02-22 19:04 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=998451043.3408644.1516727290310@mail.yahoo.com \
--to=dudenis2000@yahoo.ca \
--cc=davem@davemloft.net \
--cc=khc@pm.waw.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®