From: Mark Lord <mlord@pobox.com>
To: Hayes Wang <hayeswang@realtek.com>, David Miller <davem@davemloft.net>
Cc: nic_swsd <nic_swsd@realtek.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net] r8152: Fix broken RX checksums.
Date: Mon, 31 Oct 2016 09:24:23 -0400 [thread overview]
Message-ID: <5fca7aed-c6d5-85f0-0fad-f8eea384e613@pobox.com> (raw)
In-Reply-To: <0835B3720019904CB8F7AA43166CEEB201047353@RTITMBSV03.realtek.com.tw>
On 16-10-31 04:14 AM, Hayes Wang wrote:
>
> Our hw engineer says only VER_01 has the issue about rx checksum.
> I need more information for checking it.
I've been doing driver work for Linux since 1991,
and learned long ago not to trust engineering specs 100%.
Get yourself a Raspberry Pi v1, set up an NFSROOT root filesystem for it,
and boot/run from that using the ethernet dongle to connect.
It should segfault like crazy when hardware RX checksums are enabled.
Definitely something wrong there, and whatever it is goes away
when RX checksums are disabled in the driver.
I have two theories as to why this happens:
1) The hardware buffer on the dongle overflows because the slow host CPU
does not empty it quickly enough. This results in a bad checksum on the
final/truncated packet in the buffer. The chip does not detect this.
2) Perhaps the device driver is looking at the wrong bits.
Either way, this results in data corruption and until otherwise fixed,
it is safest to just not enable RX checksums.
If it happens on a slow embedded CPU, then it can also happen on a heavily
loaded Intel/AMD CPU -- just a lot less frequently.
Cheers
--
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com
next prev parent reply other threads:[~2016-10-31 13:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-26 22:36 [PATCH] drivers/net/usb/r8152 fix broken rx checksums Mark Lord
2016-10-26 22:54 ` Mark Lord
2016-10-30 21:22 ` David Miller
2016-10-30 23:48 ` Paul Bolle
2016-10-30 23:28 ` [PATCH net] r8152: Fix broken RX checksums Mark Lord
2016-10-31 0:57 ` David Miller
2016-10-31 2:07 ` Mark Lord
2016-10-31 3:53 ` David Miller
2016-10-31 8:14 ` Hayes Wang
2016-10-31 13:24 ` Mark Lord [this message]
2016-11-02 18:29 ` Mark Lord
2016-11-04 12:13 ` Mark Lord
[not found] ` <201611030159.uA31x0np004648@rtits1.realtek.com>
2016-11-03 8:56 ` Hayes Wang
2016-11-03 11:43 ` Mark Lord
2016-11-04 13:50 ` Mark Lord
2016-11-04 20:13 ` Mark Lord
[not found] ` <201611041425.uA4EPwCw018176@rtits1.realtek.com>
2016-11-09 13:09 ` Hayes Wang
2016-11-09 13:19 ` Mark Lord
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=5fca7aed-c6d5-85f0-0fad-f8eea384e613@pobox.com \
--to=mlord@pobox.com \
--cc=davem@davemloft.net \
--cc=hayeswang@realtek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.com \
/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®