devlink: clear flag on port register error path
authorJiri Pirko <jiri@nvidia.com>
Tue, 8 Aug 2023 08:20:20 +0000 (10:20 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 9 Aug 2023 20:06:21 +0000 (13:06 -0700)
When xarray insertion fails, clear the flag.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20230808082020.1363497-1-jiri@resnulli.us
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/devlink/leftover.c

index 3bf42f5335ed484ef88dcb6efd33b3c2e805fcb7..e7900d9fa205a1b3dd96c5b889e7874badc58f13 100644 (file)
@@ -6829,8 +6829,10 @@ int devl_port_register_with_ops(struct devlink *devlink,
        spin_lock_init(&devlink_port->type_lock);
        INIT_LIST_HEAD(&devlink_port->reporter_list);
        err = xa_insert(&devlink->ports, port_index, devlink_port, GFP_KERNEL);
-       if (err)
+       if (err) {
+               devlink_port->registered = false;
                return err;
+       }
 
        INIT_DELAYED_WORK(&devlink_port->type_warn_dw, &devlink_port_type_warn);
        devlink_port_type_warn_schedule(devlink_port);