Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: usb: lan78xx: add support for generic net selftests via ethtool

Integrate generic net_selftest framework by wiring up
.get_strings, .get_sset_count, and .self_test ethtool ops.

This enables execution of standard self-tests using
`ethtool -t <dev>` on LAN78xx devices.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20250822092555.2888870-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Oleksij Rempel and committed by
Jakub Kicinski
411d7d70 e887a196

+7
+1
drivers/net/usb/Kconfig
··· 116 116 select PHYLINK 117 117 select MICROCHIP_PHY 118 118 select CRC32 119 + imply NET_SELFTESTS 119 120 help 120 121 This option adds support for Microchip LAN78XX based USB 2 121 122 & USB 3 10/100/1000 Ethernet adapters.
+6
drivers/net/usb/lan78xx.c
··· 20 20 #include <linux/mdio.h> 21 21 #include <linux/phy.h> 22 22 #include <net/ip6_checksum.h> 23 + #include <net/selftests.h> 23 24 #include <net/vxlan.h> 24 25 #include <linux/interrupt.h> 25 26 #include <linux/irqdomain.h> ··· 1703 1702 { 1704 1703 if (stringset == ETH_SS_STATS) 1705 1704 memcpy(data, lan78xx_gstrings, sizeof(lan78xx_gstrings)); 1705 + else if (stringset == ETH_SS_TEST) 1706 + net_selftest_get_strings(data); 1706 1707 } 1707 1708 1708 1709 static int lan78xx_get_sset_count(struct net_device *netdev, int sset) 1709 1710 { 1710 1711 if (sset == ETH_SS_STATS) 1711 1712 return ARRAY_SIZE(lan78xx_gstrings); 1713 + else if (sset == ETH_SS_TEST) 1714 + return net_selftest_get_count(); 1712 1715 else 1713 1716 return -EOPNOTSUPP; 1714 1717 } ··· 1899 1894 .set_eeprom = lan78xx_ethtool_set_eeprom, 1900 1895 .get_ethtool_stats = lan78xx_get_stats, 1901 1896 .get_sset_count = lan78xx_get_sset_count, 1897 + .self_test = net_selftest, 1902 1898 .get_strings = lan78xx_get_strings, 1903 1899 .get_wol = lan78xx_get_wol, 1904 1900 .set_wol = lan78xx_set_wol,