]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mlxsw: core: Enable devlink reload only on probe
authorJiri Pirko <jiri@mellanox.com>
Sun, 10 Nov 2019 15:31:23 +0000 (16:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Nov 2019 15:48:58 +0000 (16:48 +0100)
[ Upstream commit 73a533ecf0af5f73ff72dd7c96d1c8598ca93649 ]

Call devlink enable only during probe time and avoid deadlock
during reload.

Reported-by: Shalom Toledo <shalomt@mellanox.com>
Fixes: 5a508a254bed ("devlink: disallow reload operation during device cleanup")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Tested-by: Shalom Toledo <shalomt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlxsw/core.c
net/core/devlink.c

index 92ea4a2894298930ec1ffebbb5bc5b9683205ae2..6e8e7ca7ac7630c2061d1f51ac2806bd61109ab4 100644 (file)
@@ -1128,10 +1128,11 @@ __mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
        if (err)
                goto err_thermal_init;
 
-       if (mlxsw_driver->params_register) {
+       if (mlxsw_driver->params_register)
                devlink_params_publish(devlink);
+
+       if (!reload)
                devlink_reload_enable(devlink);
-       }
 
        return 0;
 
index 707d160cc6ea040946a36e563670a5ad9b125c5a..f5994f2a645780a6e6d40cf067cbb76f4ccc61c7 100644 (file)
@@ -5559,7 +5559,7 @@ EXPORT_SYMBOL_GPL(devlink_register);
 void devlink_unregister(struct devlink *devlink)
 {
        mutex_lock(&devlink_mutex);
-       WARN_ON(devlink_reload_supported(devlink) &&
+       WARN_ON(devlink->ops->reload &&
                devlink->reload_enabled);
        devlink_notify(devlink, DEVLINK_CMD_DEL);
        list_del(&devlink->list);