diff options
author | Jiri Pirko <jiri@resnulli.us> | 2014-06-26 09:58:25 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-07-01 14:40:17 -0700 |
commit | b0ab2fabb5b91da99c189db02e91ae10bc8355c5 (patch) | |
tree | d3d9aa5bb93078b5fcf027c38a18fba652e5007b /net/core/dev.c | |
parent | 9bf2b8c280b5c02ca8a9e75263bf3ca998fed144 (diff) | |
download | lwn-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.c | 2 |
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); |