diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2020-07-05 21:27:56 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-07-07 15:41:04 -0700 |
commit | 4895d7808e7030c831f2ef83a3cc6ec0d46c30b1 (patch) | |
tree | 5ce4027f9658bae6ae1a8223a18eb1f022ebd2ca /net/ethtool/common.c | |
parent | 1a4d681634fad302157afcb53a178c4c59cb75ee (diff) |
net: ethtool: Introduce ethtool_phy_ops
In order to decouple ethtool from its PHY library dependency, define an
ethtool_phy_ops singleton which can be overriden by the PHY library when
it loads with an appropriate set of function pointers.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ethtool/common.c')
-rw-r--r-- | net/ethtool/common.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/ethtool/common.c b/net/ethtool/common.c index aaecfc916a4d..ce4dbae5a943 100644 --- a/net/ethtool/common.c +++ b/net/ethtool/common.c @@ -2,6 +2,7 @@ #include <linux/net_tstamp.h> #include <linux/phy.h> +#include <linux/rtnetlink.h> #include "common.h" @@ -373,3 +374,13 @@ int __ethtool_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) return 0; } + +const struct ethtool_phy_ops *ethtool_phy_ops; + +void ethtool_set_ethtool_phy_ops(const struct ethtool_phy_ops *ops) +{ + rtnl_lock(); + ethtool_phy_ops = ops; + rtnl_unlock(); +} +EXPORT_SYMBOL_GPL(ethtool_set_ethtool_phy_ops); |