diff options
author | David S. Miller | 2016-10-28 19:43:56 +0200 |
---|---|---|
committer | David S. Miller | 2016-10-28 19:43:56 +0200 |
commit | c2e169be8ce7bde1e4189dc6e72eb9861fe9b6fb (patch) | |
tree | c36e71c6b5f4743cb3af7f1b47172356962667b6 | |
parent | net sched filters: fix notification of filter delete with proper handle (diff) | |
parent | mlxsw: spectrum_router: Compare only trees which are in use during tree get (diff) | |
download | kernel-qcow2-linux-c2e169be8ce7bde1e4189dc6e72eb9861fe9b6fb.tar.gz kernel-qcow2-linux-c2e169be8ce7bde1e4189dc6e72eb9861fe9b6fb.tar.xz kernel-qcow2-linux-c2e169be8ce7bde1e4189dc6e72eb9861fe9b6fb.zip |
Merge branch 'mlxsw-fixes'
Jiri Pirko says:
====================
mlxsw: Couple of fixes
Couple of LPM tree management fixes.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index f3d50d369bbe..4573da2c5560 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -320,6 +320,8 @@ mlxsw_sp_lpm_tree_create(struct mlxsw_sp *mlxsw_sp, lpm_tree); if (err) goto err_left_struct_set; + memcpy(&lpm_tree->prefix_usage, prefix_usage, + sizeof(lpm_tree->prefix_usage)); return lpm_tree; err_left_struct_set: @@ -343,7 +345,8 @@ mlxsw_sp_lpm_tree_get(struct mlxsw_sp *mlxsw_sp, for (i = 0; i < MLXSW_SP_LPM_TREE_COUNT; i++) { lpm_tree = &mlxsw_sp->router.lpm_trees[i]; - if (lpm_tree->proto == proto && + if (lpm_tree->ref_count != 0 && + lpm_tree->proto == proto && mlxsw_sp_prefix_usage_eq(&lpm_tree->prefix_usage, prefix_usage)) goto inc_ref_count; |