Message ID | 20250221051223.576726-1-edumazet@google.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net-sysfs: restore behavior for not running devices | expand |
On Fri, Feb 21, 2025 at 6:12 AM Eric Dumazet <edumazet@google.com> wrote: > > 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 <edumazet@google.com> If possible, can we add : Reported-by: Marco Leogrande <leogrande@google.com> Thanks !
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;
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 <edumazet@google.com> --- net/core/net-sysfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)