r8169: work around RTL8125 UDP hw bug
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 28 Jan 2021 22:01:54 +0000 (23:01 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 30 Jan 2021 05:16:24 +0000 (21:16 -0800)
commit8d520b4de3edca4f4fb242b5ddc659b6a9b9e65e
tree69adc2371bf244d7fbc5fe2b8eb8a4f4cdeb74f8
parent01365633bd1c836240f9bbf86bbeee749795480a
r8169: work around RTL8125 UDP hw bug

It was reported that on RTL8125 network breaks under heavy UDP load,
e.g. torrent traffic ([0], from comment 27). Realtek confirmed a hw bug
and provided me with a test version of the r8125 driver including a
workaround. Tests confirmed that the workaround fixes the issue.
I modified the original version of the workaround to meet mainline
code style.

[0] https://bugzilla.kernel.org/show_bug.cgi?id=209839

v2:
- rebased to net
v3:
- make rtl_skb_is_udp() more robust and use skb_header_pointer()
  to access the ip(v6) header
v4:
- remove dependency on ptp_classify.h
- replace magic number with offsetof(struct udphdr, len)

Fixes: f1bce4ad2f1c ("r8169: add support for RTL8125")
Tested-by: xplo <xplo.bn@gmail.com>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/6e453d49-1801-e6de-d5f7-d7e6c7526c8f@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_main.c