Skip to content

Commit aee37f3

Browse files
roidayanSaeed Mahameed
authored andcommitted
net/mlx5: Fix cleaning unmanaged flow tables
Unmanaged flow tables doesn't have a parent and tree_put_node() assume there is always a parent if cleaning is needed. fix that. Fixes: 5281a0c ("net/mlx5: fs_core: Introduce unmanaged flow tables") Signed-off-by: Roi Dayan <[email protected]> Reviewed-by: Mark Bloch <[email protected]> Reviewed-by: Paul Blakey <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent df14ad1 commit aee37f3

File tree

1 file changed

+6
-5
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+6
-5
lines changed

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -344,14 +344,13 @@ static void tree_put_node(struct fs_node *node, bool locked)
344344
if (node->del_hw_func)
345345
node->del_hw_func(node);
346346
if (parent_node) {
347-
/* Only root namespace doesn't have parent and we just
348-
* need to free its node.
349-
*/
350347
down_write_ref_node(parent_node, locked);
351348
list_del_init(&node->list);
352349
if (node->del_sw_func)
353350
node->del_sw_func(node);
354351
up_write_ref_node(parent_node, locked);
352+
} else if (node->del_sw_func) {
353+
node->del_sw_func(node);
355354
} else {
356355
kfree(node);
357356
}
@@ -468,8 +467,10 @@ static void del_sw_flow_table(struct fs_node *node)
468467
fs_get_obj(ft, node);
469468

470469
rhltable_destroy(&ft->fgs_hash);
471-
fs_get_obj(prio, ft->node.parent);
472-
prio->num_ft--;
470+
if (ft->node.parent) {
471+
fs_get_obj(prio, ft->node.parent);
472+
prio->num_ft--;
473+
}
473474
kfree(ft);
474475
}
475476

0 commit comments

Comments
 (0)