diff options
author | Arkadi Sharshevsky <arkadis@mellanox.com> | 2018-01-15 08:59:07 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-16 14:15:35 -0500 |
commit | ef3116e5403ecca1653eb5cb8fbd09e239855055 (patch) | |
tree | d1d9c559d76e99eeb861fa18a4da2453ae2ac38d /drivers/net/ethernet/mellanox/mlxsw/core.c | |
parent | 54a2e8d456c7404331c1e76bb037a3c07f9b36a2 (diff) | |
download | linux-stable-ef3116e5403ecca1653eb5cb8fbd09e239855055.tar.gz linux-stable-ef3116e5403ecca1653eb5cb8fbd09e239855055.tar.bz2 linux-stable-ef3116e5403ecca1653eb5cb8fbd09e239855055.zip |
mlxsw: spectrum: Register KVD resources with devlink
Register the KVD resources with devlink. The KVD is a memory resource
which is subdivided into three partitions which are the linear, hash
single and hash double.
Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlxsw/core.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlxsw/core.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c index f3315bc874ad..2488662aa35e 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core.c @@ -1012,6 +1012,12 @@ int mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info, if (err) goto err_bus_init; + if (mlxsw_driver->resources_register) { + err = mlxsw_driver->resources_register(mlxsw_core); + if (err) + goto err_register_resources; + } + err = mlxsw_ports_init(mlxsw_core); if (err) goto err_ports_init; @@ -1067,6 +1073,8 @@ err_alloc_lag_mapping: err_ports_init: mlxsw_bus->fini(bus_priv); err_bus_init: + devlink_resources_unregister(devlink, NULL); +err_register_resources: devlink_free(devlink); err_devlink_alloc: mlxsw_core_driver_put(device_kind); @@ -1086,6 +1094,7 @@ void mlxsw_core_bus_device_unregister(struct mlxsw_core *mlxsw_core) mlxsw_emad_fini(mlxsw_core); kfree(mlxsw_core->lag.mapping); mlxsw_ports_fini(mlxsw_core); + devlink_resources_unregister(devlink, NULL); mlxsw_core->bus->fini(mlxsw_core->bus_priv); devlink_free(devlink); mlxsw_core_driver_put(device_kind); |