]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: ethtool: handle EOPNOTSUPP from ethtool get_ts_info() method
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 11 Sep 2025 14:43:15 +0000 (15:43 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 13 Sep 2025 00:09:10 +0000 (17:09 -0700)
Network drivers sometimes return -EOPNOTSUPP from their get_ts_info()
method, and this should not cause the reporting of PHY timestamping
information to be prohibited. Handle this error code, and also
arrange for ethtool_net_get_ts_info_by_phc() to return -EOPNOTSUPP
when the method is not implemented.

This allows e.g. PHYs connected to DSA switches which support
timestamping to report their timestamping capabilities.

Fixes: b9e3f7dc9ed9 ("net: ethtool: tsinfo: Enhance tsinfo to support several hwtstamp by net topology")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/E1uwiW3-00000004jRF-3CnC@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ethtool/common.c

index 4f58648a27ad6317360fec4fd68593a00910c249..92e6a681c797ec16dfcad835367c90bc26bc7386 100644 (file)
@@ -905,7 +905,7 @@ int ethtool_net_get_ts_info_by_phc(struct net_device *dev,
        int err;
 
        if (!ops->get_ts_info)
-               return -ENODEV;
+               return -EOPNOTSUPP;
 
        /* Does ptp comes from netdev */
        ethtool_init_tsinfo(info);
@@ -973,7 +973,7 @@ int ethtool_get_ts_info_by_phc(struct net_device *dev,
        int err;
 
        err = ethtool_net_get_ts_info_by_phc(dev, info, hwprov_desc);
-       if (err == -ENODEV) {
+       if (err == -ENODEV || err == -EOPNOTSUPP) {
                struct phy_device *phy;
 
                phy = ethtool_phy_get_ts_info_by_phc(dev, info, hwprov_desc);