net: Rework netdev_drivername() to avoid warning.
This interface uses a temporary buffer, but for no real reason. And now can generate warnings like: net/sched/sch_generic.c: In function dev_watchdog net/sched/sch_generic.c:254:10: warning: unused variable drivername Just return driver->name directly or "". Reported-by: Connor Hansen <cmdkhh@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5a079c305a
commit
3019de124b
3 changed files with 7 additions and 14 deletions
|
@ -2555,7 +2555,7 @@ extern void netdev_class_remove_file(struct class_attribute *class_attr);
|
||||||
|
|
||||||
extern struct kobj_ns_type_operations net_ns_type_operations;
|
extern struct kobj_ns_type_operations net_ns_type_operations;
|
||||||
|
|
||||||
extern char *netdev_drivername(const struct net_device *dev, char *buffer, int len);
|
extern const char *netdev_drivername(const struct net_device *dev);
|
||||||
|
|
||||||
extern void linkwatch_run_queue(void);
|
extern void linkwatch_run_queue(void);
|
||||||
|
|
||||||
|
|
|
@ -6264,29 +6264,23 @@ static int __net_init netdev_init(struct net *net)
|
||||||
/**
|
/**
|
||||||
* netdev_drivername - network driver for the device
|
* netdev_drivername - network driver for the device
|
||||||
* @dev: network device
|
* @dev: network device
|
||||||
* @buffer: buffer for resulting name
|
|
||||||
* @len: size of buffer
|
|
||||||
*
|
*
|
||||||
* Determine network driver for device.
|
* Determine network driver for device.
|
||||||
*/
|
*/
|
||||||
char *netdev_drivername(const struct net_device *dev, char *buffer, int len)
|
const char *netdev_drivername(const struct net_device *dev)
|
||||||
{
|
{
|
||||||
const struct device_driver *driver;
|
const struct device_driver *driver;
|
||||||
const struct device *parent;
|
const struct device *parent;
|
||||||
|
const char *empty = "";
|
||||||
if (len <= 0 || !buffer)
|
|
||||||
return buffer;
|
|
||||||
buffer[0] = 0;
|
|
||||||
|
|
||||||
parent = dev->dev.parent;
|
parent = dev->dev.parent;
|
||||||
|
|
||||||
if (!parent)
|
if (!parent)
|
||||||
return buffer;
|
return empty;
|
||||||
|
|
||||||
driver = parent->driver;
|
driver = parent->driver;
|
||||||
if (driver && driver->name)
|
if (driver && driver->name)
|
||||||
strlcpy(buffer, driver->name, len);
|
return driver->name;
|
||||||
return buffer;
|
return empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __netdev_printk(const char *level, const struct net_device *dev,
|
static int __netdev_printk(const char *level, const struct net_device *dev,
|
||||||
|
|
|
@ -251,9 +251,8 @@ static void dev_watchdog(unsigned long arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (some_queue_timedout) {
|
if (some_queue_timedout) {
|
||||||
char drivername[64];
|
|
||||||
WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit queue %u timed out\n",
|
WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit queue %u timed out\n",
|
||||||
dev->name, netdev_drivername(dev, drivername, 64), i);
|
dev->name, netdev_drivername(dev), i);
|
||||||
dev->netdev_ops->ndo_tx_timeout(dev);
|
dev->netdev_ops->ndo_tx_timeout(dev);
|
||||||
}
|
}
|
||||||
if (!mod_timer(&dev->watchdog_timer,
|
if (!mod_timer(&dev->watchdog_timer,
|
||||||
|
|
Loading…
Reference in a new issue