Skip to content

Commit

Permalink
net: ethtool: Export helpers for getting EEPROM info
Browse files Browse the repository at this point in the history
There are two ways to retrieve information from SFP EEPROMs.  Many
devices make use of the common code, and assign the sfp_bus pointer in
the netdev to point to the bus holding the SFP device. Some MAC
drivers directly implement ops in there ethool structure.

Export within net/ethtool the two helpers used to call these methods,
so that they can also be used in the new netlink code.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
lunn authored and davem330 committed Apr 11, 2021
1 parent 4c88fa4 commit 95dfc7e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
5 changes: 5 additions & 0 deletions net/ethtool/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,9 @@ int __ethtool_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info);

extern const struct ethtool_phy_ops *ethtool_phy_ops;

int ethtool_get_module_info_call(struct net_device *dev,
struct ethtool_modinfo *modinfo);
int ethtool_get_module_eeprom_call(struct net_device *dev,
struct ethtool_eeprom *ee, u8 *data);

#endif /* _ETHTOOL_COMMON_H */
14 changes: 7 additions & 7 deletions net/ethtool/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -2188,8 +2188,8 @@ static int ethtool_get_ts_info(struct net_device *dev, void __user *useraddr)
return 0;
}

static int __ethtool_get_module_info(struct net_device *dev,
struct ethtool_modinfo *modinfo)
int ethtool_get_module_info_call(struct net_device *dev,
struct ethtool_modinfo *modinfo)
{
const struct ethtool_ops *ops = dev->ethtool_ops;
struct phy_device *phydev = dev->phydev;
Expand All @@ -2215,7 +2215,7 @@ static int ethtool_get_module_info(struct net_device *dev,
if (copy_from_user(&modinfo, useraddr, sizeof(modinfo)))
return -EFAULT;

ret = __ethtool_get_module_info(dev, &modinfo);
ret = ethtool_get_module_info_call(dev, &modinfo);
if (ret)
return ret;

Expand All @@ -2225,8 +2225,8 @@ static int ethtool_get_module_info(struct net_device *dev,
return 0;
}

static int __ethtool_get_module_eeprom(struct net_device *dev,
struct ethtool_eeprom *ee, u8 *data)
int ethtool_get_module_eeprom_call(struct net_device *dev,
struct ethtool_eeprom *ee, u8 *data)
{
const struct ethtool_ops *ops = dev->ethtool_ops;
struct phy_device *phydev = dev->phydev;
Expand All @@ -2249,12 +2249,12 @@ static int ethtool_get_module_eeprom(struct net_device *dev,
int ret;
struct ethtool_modinfo modinfo;

ret = __ethtool_get_module_info(dev, &modinfo);
ret = ethtool_get_module_info_call(dev, &modinfo);
if (ret)
return ret;

return ethtool_get_any_eeprom(dev, useraddr,
__ethtool_get_module_eeprom,
ethtool_get_module_eeprom_call,
modinfo.eeprom_len);
}

Expand Down

0 comments on commit 95dfc7e

Please sign in to comment.