diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2023-04-11 21:01:49 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-04-14 08:22:10 +0300 |
commit | d54151aa0f4b5c89561705a00d8a5ebb4230028c (patch) | |
tree | 5f19c6f2185a204c67e9145de6999b679b0e82bb /net/ethtool/mm.c | |
parent | 85a4abed155402d37fef9ea29836dbcdf816cb08 (diff) | |
download | linux-d54151aa0f4b5c89561705a00d8a5ebb4230028c.tar.xz |
net: ethtool: create and export ethtool_dev_mm_supported()
Create a wrapper over __ethtool_dev_mm_supported() which also calls
ethnl_ops_begin() and ethnl_ops_complete(). It can be used by other code
layers, such as tc, to make sure that preemptible TCs are supported
(this is true if an underlying MAC Merge layer exists).
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Ferenc Fejes <fejes@inf.elte.hu>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ethtool/mm.c')
-rw-r--r-- | net/ethtool/mm.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/net/ethtool/mm.c b/net/ethtool/mm.c index fce3cc2734f9..e00d7d5cea7e 100644 --- a/net/ethtool/mm.c +++ b/net/ethtool/mm.c @@ -249,3 +249,26 @@ bool __ethtool_dev_mm_supported(struct net_device *dev) return !ret; } + +bool ethtool_dev_mm_supported(struct net_device *dev) +{ + const struct ethtool_ops *ops = dev->ethtool_ops; + bool supported; + int ret; + + ASSERT_RTNL(); + + if (!ops) + return false; + + ret = ethnl_ops_begin(dev); + if (ret < 0) + return false; + + supported = __ethtool_dev_mm_supported(dev); + + ethnl_ops_complete(dev); + + return supported; +} +EXPORT_SYMBOL_GPL(ethtool_dev_mm_supported); |