Re: [PATCH v2 8/8] net: register debugfs file for net_device refcnt tracker
From: Kuniyuki Iwashima
Date: Tue Apr 15 2025 - 22:01:22 EST
From: Jeff Layton <jlayton@xxxxxxxxxx>
Date: Tue, 15 Apr 2025 14:49:46 -0400
> As a nearly-final step in register_netdevice(), finalize the name in the
> refcount tracker, and register a debugfs file for it.
>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
> net/core/dev.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 2f7f5fd9ffec7c0fc219eb6ba57d57a55134186e..a87488e127ed13fded156023de676851826a1a8f 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -10834,8 +10834,9 @@ static void netdev_free_phy_link_topology(struct net_device *dev)
> */
> int register_netdevice(struct net_device *dev)
> {
> - int ret;
> struct net *net = dev_net(dev);
> + char name[64];
> + int ret;
>
> BUILD_BUG_ON(sizeof(netdev_features_t) * BITS_PER_BYTE <
> NETDEV_FEATURE_COUNT);
> @@ -10994,6 +10995,9 @@ int register_netdevice(struct net_device *dev)
> dev->rtnl_link_state == RTNL_LINK_INITIALIZED)
> rtmsg_ifinfo(RTM_NEWLINK, dev, ~0U, GFP_KERNEL, 0, NULL);
>
> + /* Register debugfs file for the refcount tracker */
> + if (snprintf(name, sizeof(name), "netdev-%s@%p", dev->name, dev) < sizeof(name))
Given IFNAMSIZ is 16, using WARN_ON_ONCE() and calling
ref_tracker_dir_debugfs() unconditionally would be better
to catch future regression with syzbot.
Also, this hunk conflicts with
commit 097f171f98289cf737437599c40b0d1e81266e9e
Author: Jakub Kicinski <kuba@xxxxxxxxxx>
Date: Wed Apr 9 18:42:46 2025 -0700
net: convert dev->rtnl_link_state to a bool
> + ref_tracker_dir_debugfs(&dev->refcnt_tracker, name);
> out:
> return ret;
>
>
> --
> 2.49.0