bareudp_dellink() only needs the device list to hand it to
unregister_netdevice_queue(). We can pass NULL in, and
unregister_netdevice_queue() will do the unregistering.
There is no chance for batching on the error path, anyway.

Suggested-by: Cong Wang <xiyou.wangc...@gmail.com>
Signed-off-by: Jakub Kicinski <k...@kernel.org>
---
 drivers/net/bareudp.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 85de5f96c02b..0965d136def3 100644
--- a/drivers/net/bareudp.c
+++ b/drivers/net/bareudp.c
@@ -658,7 +658,6 @@ static int bareudp_newlink(struct net *net, struct 
net_device *dev,
                           struct netlink_ext_ack *extack)
 {
        struct bareudp_conf conf;
-       LIST_HEAD(list_kill);
        int err;
 
        err = bareudp2info(data, &conf, extack);
@@ -676,8 +675,7 @@ static int bareudp_newlink(struct net *net, struct 
net_device *dev,
        return 0;
 
 err_unconfig:
-       bareudp_dellink(dev, &list_kill);
-       unregister_netdevice_many(&list_kill);
+       bareudp_dellink(dev, NULL);
        return err;
 }
 
@@ -729,7 +727,6 @@ struct net_device *bareudp_dev_create(struct net *net, 
const char *name,
 {
        struct nlattr *tb[IFLA_MAX + 1];
        struct net_device *dev;
-       LIST_HEAD(list_kill);
        int err;
 
        memset(tb, 0, sizeof(tb));
@@ -753,8 +750,7 @@ struct net_device *bareudp_dev_create(struct net *net, 
const char *name,
 
        return dev;
 err:
-       bareudp_dellink(dev, &list_kill);
-       unregister_netdevice_many(&list_kill);
+       bareudp_dellink(dev, NULL);
        return ERR_PTR(err);
 }
 EXPORT_SYMBOL_GPL(bareudp_dev_create);
-- 
2.26.2

Reply via email to