summaryrefslogtreecommitdiff
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2014-06-26 09:58:25 +0200
committerDavid S. Miller <davem@davemloft.net>2014-07-01 14:40:17 -0700
commitb0ab2fabb5b91da99c189db02e91ae10bc8355c5 (patch)
treed3d9aa5bb93078b5fcf027c38a18fba652e5007b /net/core/dev.c
parent9bf2b8c280b5c02ca8a9e75263bf3ca998fed144 (diff)
downloadlwn-b0ab2fabb5b91da99c189db02e91ae10bc8355c5.tar.gz
lwn-b0ab2fabb5b91da99c189db02e91ae10bc8355c5.zip
rtnetlink: allow to register ops without ops->setup set
So far, it is assumed that ops->setup is filled up. But there might be case that ops might make sense even without ->setup. In that case, forbid to newlink and dellink. This allows to register simple rtnl link ops containing only ->kind. That allows consistent way of passing device kind (either device-kind or slave-kind) to userspace. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index de9774119541..6e2a2cd82321 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -7091,7 +7091,7 @@ static void __net_exit default_device_exit_batch(struct list_head *net_list)
rtnl_lock_unregistering(net_list);
list_for_each_entry(net, net_list, exit_list) {
for_each_netdev_reverse(net, dev) {
- if (dev->rtnl_link_ops)
+ if (dev->rtnl_link_ops && dev->rtnl_link_ops->dellink)
dev->rtnl_link_ops->dellink(dev, &dev_kill_list);
else
unregister_netdevice_queue(dev, &dev_kill_list);