summaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorEric Dumazet2012-09-16 11:17:26 +0200
committerDavid S. Miller2012-09-19 21:40:15 +0200
commit2c60db037034d27f8c636403355d52872da92f81 (patch)
tree68efc9ad7d95069bbc84feeb24bc58d250610ba3 /net/core/dev.c
parentnet: dev: fix incorrect getting net device's name (diff)
downloadkernel-qcow2-linux-2c60db037034d27f8c636403355d52872da92f81.tar.gz
kernel-qcow2-linux-2c60db037034d27f8c636403355d52872da92f81.tar.xz
kernel-qcow2-linux-2c60db037034d27f8c636403355d52872da92f81.zip
net: provide a default dev->ethtool_ops
Instead of forcing device drivers to provide empty ethtool_ops or tweak net/core/ethtool.c again, we could provide a generic ethtool_ops. This occurred to me when I wanted to add GSO support to GRE tunnels. ethtool -k support should be generic for all drivers. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Ben Hutchings <bhutchings@solarflare.com> Cc: Maciej Żenczykowski <maze@google.com> Reviewed-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index bb42eb161969..bbda81997f4f 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5974,6 +5974,8 @@ struct netdev_queue *dev_ingress_queue_create(struct net_device *dev)
return queue;
}
+static const struct ethtool_ops default_ethtool_ops;
+
/**
* alloc_netdev_mqs - allocate network device
* @sizeof_priv: size of private data to allocate space for
@@ -6061,6 +6063,8 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
strcpy(dev->name, name);
dev->group = INIT_NETDEV_GROUP;
+ if (!dev->ethtool_ops)
+ dev->ethtool_ops = &default_ethtool_ops;
return dev;
free_all: