mbox series

[0/1] r8152: Add Lenovo Powered USB-C Travel Hub

Message ID 20210108202727.11728-1-leon@is.currently.online
Headers show
Series r8152: Add Lenovo Powered USB-C Travel Hub | expand

Message

Leon Schuermann Jan. 8, 2021, 8:27 p.m. UTC
Hi,

this patch resolves an issue with my Lenovo USB-C Hub with an
integrated Realtek USB Ethernet controller.

When suspending my host system, along with an active Ethernet link
using the Realtek USB Ethernet adapter on a somewhat busy network,
after a few minutes the NIC would start to constantly send MAC pause
frames. Presumably this is because flow control in the NIC is not
disabled while the host system suspends, which triggers the pause
frame transmission as soon as the internal buffers fill up. With
multiple Ethernet switches from different manufactures this manages to
bring large parts of my network down as soon as the laptop is in
standby.

Because of Lenovo's somewhat confusing naming scheme around their
hubs, I've taken the liberty to add their product ID to the entry,
such that others can find the device I'm referring to.

I did not find any specific git tree to base this patch on, so it is
based on Linus' latest master. If you have a more appropriate tree I
will of course rebase accordingly. Also, if this is the wrong address
to direct this patch, I'd be happy if you could point me to the right
people.

Thanks!

Leon


Leon Schuermann (1):
  r8152: Add Lenovo Powered USB-C Travel Hub

 drivers/net/usb/cdc_ether.c | 7 +++++++
 drivers/net/usb/r8152.c     | 1 +
 2 files changed, 8 insertions(+)


base-commit: f5e6c330254ae691f6d7befe61c786eb5056007e

Comments

Jakub Kicinski Jan. 9, 2021, 2:20 a.m. UTC | #1
On Fri,  8 Jan 2021 21:27:27 +0100 Leon Schuermann wrote:
> This USB-C Hub (17ef:721e) based on the Realtek RTL8153B chip used to
> work with the cdc_ether driver.

When you say "used to work" do you mean there was a regression where
the older kernels would work fine and newer don't? Or just "it works
most of the time"?

> However, using this driver, with the
> system suspended the device sends pause-frames as soon as the receive
> buffer fills up. This produced substantial network load, up to the
> point where some Ethernet switches stopped processing packets
> altogether.
> 
> Using the Realtek driver (r8152) fixes this issue. Pause frames are no
> longer sent while the host system is suspended.
> 
> Signed-off-by: Leon Schuermann <leon@is.currently.online>
> Tested-by: Leon Schuermann <leon@is.currently.online>