|
@@ -4686,6 +4686,26 @@ err_name:
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+char *netdev_drivername(struct net_device *dev, char *buffer, int len)
|
|
|
|
+{
|
|
|
|
+ struct device_driver *driver;
|
|
|
|
+ struct device *parent;
|
|
|
|
+
|
|
|
|
+ if (len <= 0 || !buffer)
|
|
|
|
+ return buffer;
|
|
|
|
+ buffer[0] = 0;
|
|
|
|
+
|
|
|
|
+ parent = dev->dev.parent;
|
|
|
|
+
|
|
|
|
+ if (!parent)
|
|
|
|
+ return buffer;
|
|
|
|
+
|
|
|
|
+ driver = parent->driver;
|
|
|
|
+ if (driver && driver->name)
|
|
|
|
+ strlcpy(buffer, driver->name, len);
|
|
|
|
+ return buffer;
|
|
|
|
+}
|
|
|
|
+
|
|
static void __net_exit netdev_exit(struct net *net)
|
|
static void __net_exit netdev_exit(struct net *net)
|
|
{
|
|
{
|
|
kfree(net->dev_name_head);
|
|
kfree(net->dev_name_head);
|