aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHadar Hen Zion <hadarh@mellanox.com>2013-03-21 01:55:52 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-21 12:05:07 -0400
commit80cb0021163cb55b14c7c054073f89d63a2e1e40 (patch)
tree43d15cb5f7f0d8da724c6c481f6940e9bc023ead
parentc101c81b5293cdcb616ed4948d0c4a4cfd1f481a (diff)
net/mlx4_core: Fix wrong order of flow steering resources removal
On the resource tracker cleanup flow, the DMFS rules must be deleted before we destroy the QPs, else the HW may attempt doing packet steering to non existent QPs. Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/resource_tracker.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
index 2995687f1aee..0d1d9679179c 100644
--- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -3806,6 +3806,7 @@ void mlx4_delete_all_resources_for_slave(struct mlx4_dev *dev, int slave)
3806 mutex_lock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); 3806 mutex_lock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex);
3807 /*VLAN*/ 3807 /*VLAN*/
3808 rem_slave_macs(dev, slave); 3808 rem_slave_macs(dev, slave);
3809 rem_slave_fs_rule(dev, slave);
3809 rem_slave_qps(dev, slave); 3810 rem_slave_qps(dev, slave);
3810 rem_slave_srqs(dev, slave); 3811 rem_slave_srqs(dev, slave);
3811 rem_slave_cqs(dev, slave); 3812 rem_slave_cqs(dev, slave);
@@ -3814,6 +3815,5 @@ void mlx4_delete_all_resources_for_slave(struct mlx4_dev *dev, int slave)
3814 rem_slave_mtts(dev, slave); 3815 rem_slave_mtts(dev, slave);
3815 rem_slave_counters(dev, slave); 3816 rem_slave_counters(dev, slave);
3816 rem_slave_xrcdns(dev, slave); 3817 rem_slave_xrcdns(dev, slave);
3817 rem_slave_fs_rule(dev, slave);
3818 mutex_unlock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); 3818 mutex_unlock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex);
3819} 3819}