net/mlx5_core: Fix soft lockup in steering error flow
authorMaor Gottlieb <maorg@mellanox.com>
Thu, 21 Apr 2016 21:33:00 +0000 (00:33 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 24 Apr 2016 18:51:38 +0000 (14:51 -0400)
commitc3f9bf628bc7edda298897d952f5e761137229c9
tree0e82ce86364cd38cfd80f19010e6b9b04294c907
parent45c78e0219405af1b0f31b06952dfd9bcf7ad1f6
net/mlx5_core: Fix soft lockup in steering error flow

In the error flow of adding flow rule to auto-grouped flow
table, we call to tree_remove_node.

tree_remove_node locks the node's parent, however the node's parent
is already locked by mlx5_add_flow_rule and this causes a deadlock.
After this patch, if we failed to add the flow rule, we unlock the
flow table before calling to tree_remove_node.

fixes: f0d22d187473 ('net/mlx5_core: Introduce flow steering autogrouped
flow table')
Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Reported-by: Amir Vadai <amir@vadai.me>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c