mlxsw: spectrum_router: RIF: Use tracker helpers to hold & put netdevices
Using the tracking helpers makes it easier to debug netdevice refcount imbalances when CONFIG_NET_DEV_REFCNT_TRACKER is enabled. Convert dev_hold() / dev_put() to netdev_hold() / netdev_put() in the router code that deals with RIF allocation. Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/8b7701a7b439ac268e4be4040eff99d01e27ae47.1690471775.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b17b2d57b7
commit
d0e0e88012
@ -71,6 +71,7 @@ static const struct rhashtable_params mlxsw_sp_crif_ht_params = {
|
||||
|
||||
struct mlxsw_sp_rif {
|
||||
struct mlxsw_sp_crif *crif; /* NULL for underlay RIF */
|
||||
netdevice_tracker dev_tracker;
|
||||
struct list_head neigh_list;
|
||||
struct mlxsw_sp_fid *fid;
|
||||
unsigned char addr[ETH_ALEN];
|
||||
@ -8412,7 +8413,7 @@ mlxsw_sp_rif_create(struct mlxsw_sp *mlxsw_sp,
|
||||
err = -ENOMEM;
|
||||
goto err_rif_alloc;
|
||||
}
|
||||
dev_hold(params->dev);
|
||||
netdev_hold(params->dev, &rif->dev_tracker, GFP_KERNEL);
|
||||
mlxsw_sp->router->rifs[rif_index] = rif;
|
||||
rif->mlxsw_sp = mlxsw_sp;
|
||||
rif->ops = ops;
|
||||
@ -8469,7 +8470,7 @@ err_configure:
|
||||
mlxsw_sp_fid_put(fid);
|
||||
err_fid_get:
|
||||
mlxsw_sp->router->rifs[rif_index] = NULL;
|
||||
dev_put(params->dev);
|
||||
netdev_put(params->dev, &rif->dev_tracker);
|
||||
mlxsw_sp_rif_free(rif);
|
||||
err_rif_alloc:
|
||||
err_crif_lookup:
|
||||
@ -8511,7 +8512,7 @@ static void mlxsw_sp_rif_destroy(struct mlxsw_sp_rif *rif)
|
||||
/* Loopback RIFs are not associated with a FID. */
|
||||
mlxsw_sp_fid_put(fid);
|
||||
mlxsw_sp->router->rifs[rif->rif_index] = NULL;
|
||||
dev_put(dev);
|
||||
netdev_put(dev, &rif->dev_tracker);
|
||||
mlxsw_sp_rif_free(rif);
|
||||
mlxsw_sp_rif_index_free(mlxsw_sp, rif_index, rif_entries);
|
||||
vr->rif_count--;
|
||||
|
Loading…
x
Reference in New Issue
Block a user