Re: [PATCH net-next] net-sysfs: restore behavior for not running devices
flat view
From: Antoine Tenart <atenart@kernel.org>
Date: 2025-02-24 08:23:18
Quoting Eric Dumazet (2025-02-21 06:12:23)
modprobe dummy dumdummies=1
Old behavior :
$ cat /sys/class/net/dummy0/carrier
cat: /sys/class/net/dummy0/carrier: Invalid argument
After blamed commit, an empty string is reported.
$ cat /sys/class/net/dummy0/carrier
$
In this commit, I restore the old behavior for carrier,
speed and duplex attributes.
Fixes: 79c61899b5ee ("net-sysfs: remove rtnl_trylock from device attributes")
Signed-off-by: Eric Dumazet <redacted>Reviewed-by: Antoine Tenart <atenart@kernel.org> Thanks!
quoted hunk ↗ jump to hunk
--- net/core/net-sysfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 3fe2c521e5740436687f09c572754c5d071038f4..f61c1d829811941671981a395fc4cbc57cf48d23 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c@@ -313,12 +313,13 @@ static ssize_t carrier_show(struct device *dev, struct device_attribute *attr, char *buf) { struct net_device *netdev = to_net_dev(dev); - int ret = -EINVAL; + int ret; ret = sysfs_rtnl_lock(&dev->kobj, &attr->attr, netdev); if (ret) return ret; + ret = -EINVAL; if (netif_running(netdev)) { /* Synchronize carrier state with link watch, * see also rtnl_getlink().@@ -349,6 +350,7 @@ static ssize_t speed_show(struct device *dev, if (ret) return ret; + ret = -EINVAL; if (netif_running(netdev)) { struct ethtool_link_ksettings cmd;@@ -376,6 +378,7 @@ static ssize_t duplex_show(struct device *dev, if (ret) return ret; + ret = -EINVAL; if (netif_running(netdev)) { struct ethtool_link_ksettings cmd;-- 2.48.1.601.g30ceb7b040-goog