struct kernel_ethtool_ts_info *info)
 {
        struct hwtstamp_provider *hwprov;
+       int err = 0;
 
        rcu_read_lock();
        hwprov = rcu_dereference(dev->hwprov);
        if (!hwprov) {
                const struct ethtool_ops *ops = dev->ethtool_ops;
                struct phy_device *phydev = dev->phydev;
-               int err = 0;
 
                ethtool_init_tsinfo(info);
                if (phy_is_default_hwtstamp(phydev) &&
                return err;
        }
 
+       err = ethtool_get_ts_info_by_phc(dev, info, &hwprov->desc);
        rcu_read_unlock();
-       return ethtool_get_ts_info_by_phc(dev, info, &hwprov->desc);
+       return err;
 }
 
 bool net_support_hwtstamp_qualifier(struct net_device *dev,