mirror-linux/drivers/net
Wei Fang e31a11be41 net: phylink: add missing supported link modes for the fixed-link
Pause, Asym_Pause and Autoneg bits are not set when pl->supported is
initialized, so these link modes will not work for the fixed-link. This
leads to a TCP performance degradation issue observed on the i.MX943
platform.

The switch CPU port of i.MX943 is connected to an ENETC MAC, this link
is a fixed link and the link speed is 2.5Gbps. And one of the switch
user ports is the RGMII interface, and its link speed is 1Gbps. If the
flow-control of the fixed link is not enabled, we can easily observe
the iperf performance of TCP packets is very low. Because the inbound
rate on the CPU port is greater than the outbound rate on the user port,
the switch is prone to congestion, leading to the loss of some TCP
packets and requiring multiple retransmissions.

Solving this problem should be as simple as setting the Asym_Pause and
Pause bits. The reason why the Autoneg bit needs to be set, Russell
has gave a very good explanation in the thread [1], see below.

"As the advertising and lp_advertising bitmasks have to be non-empty,
and the swphy reports aneg capable, aneg complete, and AN enabled, then
for consistency with that state, Autoneg should be set. This is how it
was prior to the blamed commit."

Fixes: de7d3f87be ("net: phylink: Use phy_caps_lookup for fixed-link configuration")
Link: https://lore.kernel.org/aRjqLN8eQDIQfBjS@shell.armlinux.org.uk # [1]
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20251117102943.1862680-1-wei.fang@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-11-19 08:31:11 -08:00
..
arcnet
bonding bonding: fix mii_status when slave is down 2025-11-10 17:51:30 -08:00
caif
can can: netlink: can_changelink(): allow disabling of automatic restart 2025-10-20 17:20:12 +02:00
dsa net: dsa: hellcreek: fix missing error handling in LED registration 2025-11-14 17:46:32 -08:00
ethernet net/mlx5: Clean up only new IRQ glue on request_irq() failure 2025-11-18 18:47:09 -08:00
fddi
fjes net: WQ_PERCPU added to alloc_workqueue users 2025-09-22 17:40:30 -07:00
hamradio 6pack: drop redundant locking and refcounting 2025-09-30 10:10:59 +02:00
hippi
hyperv hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
ieee802154
ipa
ipvlan
mctp net: mctp: Fix tx queue stall 2025-10-29 17:55:14 -07:00
mdio net: mdio: Check regmap pointer returned by device_node_to_regmap() 2025-11-03 16:20:03 -08:00
netdevsim netdevsim: set the carrier when the device goes up 2025-10-15 17:43:17 -07:00
ovpn ovpn: use datagram_poll_queue for socket readiness in TCP 2025-10-23 15:46:04 +02:00
pcs
phy net: phylink: add missing supported link modes for the fixed-link 2025-11-19 08:31:11 -08:00
plip
ppp
pse-pd net: pse-pd: tps23881: Fix current measurement scaling 2025-10-07 18:30:53 -07:00
slip
team
thunderbolt
usb net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup 2025-11-03 17:36:49 -08:00
vmxnet3
vxlan
wan net: wan: framer: pef2256: Switch to devm_mfd_add_devices() 2025-11-05 18:02:34 -08:00
wireguard net: WQ_PERCPU added to alloc_workqueue users 2025-09-22 17:40:30 -07:00
wireless wifi: iwlwifi: mld: always take beacon ies in link grading 2025-11-12 09:54:46 +02:00
wwan net: wwan: t7xx: add support for HP DRMR-H01 2025-10-06 11:10:38 -07:00
xen-netback
Kconfig
LICENSE.SRC
Makefile
Space.c
amt.c
bareudp.c
dummy.c
eql.c
geneve.c
gtp.c
ifb.c
loopback.c
macsec.c
macvlan.c net: replace use of system_unbound_wq with system_dfl_wq 2025-09-22 17:40:30 -07:00
macvtap.c
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c netconsole: Acquire su_mutex before navigating configs hierarchy 2025-10-31 17:45:06 -07:00
netkit.c
nlmon.c
ntb_netdev.c
pfcp.c
rionet.c
sungem_phy.c
tap.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-09-25 11:00:59 -07:00
tun_vnet.h
veth.c veth: more robust handing of race to avoid txq getting stuck 2025-11-14 18:16:53 -08:00
virtio_net.c virtio-net: fix incorrect flags recording in big mode 2025-11-13 13:16:30 +01:00
vrf.c
vsockmon.c
xen-netfront.c