netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n
@ 2023-01-25 11:02 Vladimir Oltean
  2023-01-26 10:37 ` Leon Romanovsky
  2023-01-26 14:40 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Vladimir Oltean @ 2023-01-25 11:02 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Michal Kubecek, Andrew Lunn, kernel test robot

ethtool_aggregate_*_stats() are implemented in net/ethtool/stats.c, a
file which is compiled out when CONFIG_ETHTOOL_NETLINK=n. In order to
avoid adding Kbuild dependencies from drivers (which call these helpers)
on CONFIG_ETHTOOL_NETLINK, let's add some shim definitions which simply
make the helpers dead code.

This means the function prototypes should have been located in
include/linux/ethtool_netlink.h rather than include/linux/ethtool.h.

Fixes: 449c5459641a ("net: ethtool: add helpers for aggregate statistics")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/net/ethernet/mscc/ocelot_stats.c |  1 +
 include/linux/ethtool.h                  | 11 -------
 include/linux/ethtool_netlink.h          | 42 ++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/mscc/ocelot_stats.c b/drivers/net/ethernet/mscc/ocelot_stats.c
index f660eef4a287..bdb893476832 100644
--- a/drivers/net/ethernet/mscc/ocelot_stats.c
+++ b/drivers/net/ethernet/mscc/ocelot_stats.c
@@ -4,6 +4,7 @@
  * Copyright (c) 2017 Microsemi Corporation
  * Copyright 2022 NXP
  */
+#include <linux/ethtool_netlink.h>
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
 #include <linux/workqueue.h>
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 6a8253d3fea8..515c78d8eb7c 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -991,17 +991,6 @@ int ethtool_get_phc_vclocks(struct net_device *dev, int **vclock_index);
 u32 ethtool_op_get_link(struct net_device *dev);
 int ethtool_op_get_ts_info(struct net_device *dev, struct ethtool_ts_info *eti);
 
-void ethtool_aggregate_mac_stats(struct net_device *dev,
-				 struct ethtool_eth_mac_stats *mac_stats);
-void ethtool_aggregate_phy_stats(struct net_device *dev,
-				 struct ethtool_eth_phy_stats *phy_stats);
-void ethtool_aggregate_ctrl_stats(struct net_device *dev,
-				  struct ethtool_eth_ctrl_stats *ctrl_stats);
-void ethtool_aggregate_pause_stats(struct net_device *dev,
-				   struct ethtool_pause_stats *pause_stats);
-void ethtool_aggregate_rmon_stats(struct net_device *dev,
-				  struct ethtool_rmon_stats *rmon_stats);
-
 /**
  * ethtool_mm_frag_size_add_to_min - Translate (standard) additional fragment
  *	size expressed as multiplier into (absolute) minimum fragment size
diff --git a/include/linux/ethtool_netlink.h b/include/linux/ethtool_netlink.h
index aba348d58ff6..17003b385756 100644
--- a/include/linux/ethtool_netlink.h
+++ b/include/linux/ethtool_netlink.h
@@ -29,6 +29,17 @@ int ethnl_cable_test_amplitude(struct phy_device *phydev, u8 pair, s16 mV);
 int ethnl_cable_test_pulse(struct phy_device *phydev, u16 mV);
 int ethnl_cable_test_step(struct phy_device *phydev, u32 first, u32 last,
 			  u32 step);
+void ethtool_aggregate_mac_stats(struct net_device *dev,
+				 struct ethtool_eth_mac_stats *mac_stats);
+void ethtool_aggregate_phy_stats(struct net_device *dev,
+				 struct ethtool_eth_phy_stats *phy_stats);
+void ethtool_aggregate_ctrl_stats(struct net_device *dev,
+				  struct ethtool_eth_ctrl_stats *ctrl_stats);
+void ethtool_aggregate_pause_stats(struct net_device *dev,
+				   struct ethtool_pause_stats *pause_stats);
+void ethtool_aggregate_rmon_stats(struct net_device *dev,
+				  struct ethtool_rmon_stats *rmon_stats);
+
 #else
 static inline int ethnl_cable_test_alloc(struct phy_device *phydev, u8 cmd)
 {
@@ -70,5 +81,36 @@ static inline int ethnl_cable_test_step(struct phy_device *phydev, u32 first,
 {
 	return -EOPNOTSUPP;
 }
+
+static inline void
+ethtool_aggregate_mac_stats(struct net_device *dev,
+			    struct ethtool_eth_mac_stats *mac_stats)
+{
+}
+
+static inline void
+ethtool_aggregate_phy_stats(struct net_device *dev,
+			    struct ethtool_eth_phy_stats *phy_stats)
+{
+}
+
+static inline void
+ethtool_aggregate_ctrl_stats(struct net_device *dev,
+			     struct ethtool_eth_ctrl_stats *ctrl_stats)
+{
+}
+
+static inline void
+ethtool_aggregate_pause_stats(struct net_device *dev,
+			      struct ethtool_pause_stats *pause_stats)
+{
+}
+
+static inline void
+ethtool_aggregate_rmon_stats(struct net_device *dev,
+			     struct ethtool_rmon_stats *rmon_stats)
+{
+}
+
 #endif /* IS_ENABLED(CONFIG_ETHTOOL_NETLINK) */
 #endif /* _LINUX_ETHTOOL_NETLINK_H_ */
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n
  2023-01-25 11:02 [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n Vladimir Oltean
@ 2023-01-26 10:37 ` Leon Romanovsky
  2023-01-26 14:40 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Leon Romanovsky @ 2023-01-26 10:37 UTC (permalink / raw)
  To: Vladimir Oltean
  Cc: netdev, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Michal Kubecek, Andrew Lunn, kernel test robot

On Wed, Jan 25, 2023 at 01:02:14PM +0200, Vladimir Oltean wrote:
> ethtool_aggregate_*_stats() are implemented in net/ethtool/stats.c, a
> file which is compiled out when CONFIG_ETHTOOL_NETLINK=n. In order to
> avoid adding Kbuild dependencies from drivers (which call these helpers)
> on CONFIG_ETHTOOL_NETLINK, let's add some shim definitions which simply
> make the helpers dead code.
> 
> This means the function prototypes should have been located in
> include/linux/ethtool_netlink.h rather than include/linux/ethtool.h.
> 
> Fixes: 449c5459641a ("net: ethtool: add helpers for aggregate statistics")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
> ---
>  drivers/net/ethernet/mscc/ocelot_stats.c |  1 +
>  include/linux/ethtool.h                  | 11 -------
>  include/linux/ethtool_netlink.h          | 42 ++++++++++++++++++++++++
>  3 files changed, 43 insertions(+), 11 deletions(-)

Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n
  2023-01-25 11:02 [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n Vladimir Oltean
  2023-01-26 10:37 ` Leon Romanovsky
@ 2023-01-26 14:40 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-01-26 14:40 UTC (permalink / raw)
  To: Vladimir Oltean
  Cc: netdev, davem, edumazet, kuba, pabeni, mkubecek, andrew, lkp

Hello:

This patch was applied to netdev/net-next.git (master)
by Paolo Abeni <pabeni@redhat.com>:

On Wed, 25 Jan 2023 13:02:14 +0200 you wrote:
> ethtool_aggregate_*_stats() are implemented in net/ethtool/stats.c, a
> file which is compiled out when CONFIG_ETHTOOL_NETLINK=n. In order to
> avoid adding Kbuild dependencies from drivers (which call these helpers)
> on CONFIG_ETHTOOL_NETLINK, let's add some shim definitions which simply
> make the helpers dead code.
> 
> This means the function prototypes should have been located in
> include/linux/ethtool_netlink.h rather than include/linux/ethtool.h.
> 
> [...]

Here is the summary with links:
  - [net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n
    https://git.kernel.org/netdev/net-next/c/9179f5fe4173

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-01-26 14:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-25 11:02 [PATCH net-next] net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n Vladimir Oltean
2023-01-26 10:37 ` Leon Romanovsky
2023-01-26 14:40 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).