Re: [PATCH v2 net-next 1/2] net: use dev->name in netdev_pr* when it's available
From: Joe Perches <joe@perches.com>
Date: 2014-07-17 16:18:50
On Thu, 2014-07-17 at 16:09 +0200, Veaceslav Falico wrote:
quoted hunk ↗ jump to hunk
netdev_name() returns dev->name only when the net_device is in NETREG_REGISTERED state. However, dev->name is always populated on creation, so we can easily use it. There are two cases when there's no real name - when it's an empty string or when the name is in form of "eth%d", then netdev_name() returns "unnamed net_device". CC: "David S. Miller" <davem@davemloft.net> CC: Tom Gundersen <redacted> Signed-off-by: Veaceslav Falico <redacted> --- Notes: v1->v2: Also account for an empty string, as Tom Gundersen suggested. include/linux/netdevice.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 15ed750..70256aa 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h@@ -3383,8 +3383,8 @@ extern struct pernet_operations __net_initdata loopback_net_ops; static inline const char *netdev_name(const struct net_device *dev) { - if (dev->reg_state != NETREG_REGISTERED) - return "(unregistered net_device)"; + if (!dev->name[0] || strchr(dev->name, '%')) + return "(unnamed net_device)"; return dev->name; }
Maybe this should not be inline and become something like:
const char *netdev_name(const struct net_device *dev)
{
if (dev->reg_state == NETREG_REGISTERED)
return dev->name;
if (!dev->name[0])
return "(unnamed net_device)";
if (!strchr(dev->name, '%'))
return "(unregistered net_device)";
return dev->name;
}
EXPORT_SYMBOL(netdev_name);