diff options
| author | Yi Cong <yicong@kylinos.cn> | 2025-07-24 09:31:33 +0800 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-07-25 11:05:22 -0700 |
| commit | a75afcd188e1a7385c71f78d4e5e8d7b6bd9c2e4 (patch) | |
| tree | e64cb335fb44ee323ad3c9d765714fb70974f7a7 /drivers/net/usb/usbnet.c | |
| parent | selftests: rtnetlink: add macsec and vlan nesting test (diff) | |
| download | linux-a75afcd188e1a7385c71f78d4e5e8d7b6bd9c2e4.tar.gz linux-a75afcd188e1a7385c71f78d4e5e8d7b6bd9c2e4.zip | |
usbnet: Set duplex status to unknown in the absence of MII
Currently, USB CDC devices that do not use MDIO to get link status have
their duplex mode set to half-duplex by default. However, since the CDC
specification does not define a duplex status, this can be misleading.
This patch changes the default to DUPLEX_UNKNOWN in the absence of MII,
which more accurately reflects the state of the link and avoids implying
an incorrect or error state.
Link: https://lore.kernel.org/all/20250723152151.70a8034b@kernel.org/
Signed-off-by: Yi Cong <yicong@kylinos.cn>
Acked-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20250724013133.1645142-1-yicongsrfy@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/usb/usbnet.c')
| -rw-r--r-- | drivers/net/usb/usbnet.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 921c05bc73e3..a8d50dd93d12 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -1013,6 +1013,13 @@ int usbnet_get_link_ksettings_internal(struct net_device *net, else cmd->base.speed = SPEED_UNKNOWN; + /* The standard "Universal Serial Bus Class Definitions + * for Communications Devices v1.2" does not specify + * anything about duplex status. + * So set it DUPLEX_UNKNOWN instead of default DUPLEX_HALF. + */ + cmd->base.duplex = DUPLEX_UNKNOWN; + return 0; } EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings_internal); |
