瀏覽代碼

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>
David S. Miller 14 年之前
父節點
當前提交
3019de124b
共有 3 個文件被更改,包括 7 次插入14 次删除
  1. 1 1
      include/linux/netdevice.h
  2. 5 11
      net/core/dev.c
  3. 1 2
      net/sched/sch_generic.c

+ 1 - 1
include/linux/netdevice.h

@@ -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);
 
 

+ 5 - 11
net/core/dev.c

@@ -6264,29 +6264,23 @@ err_name:
 /**
 /**
  *	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;
-
-	if (len <= 0 || !buffer)
-		return buffer;
-	buffer[0] = 0;
+	const char *empty = "";
 
 
 	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 buffer;
+		return driver->name;
+	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,

+ 1 - 2
net/sched/sch_generic.c

@@ -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,