Browse Source

mlx4_core: Fix thinko in QP destroy (incorrect bitmap_free)

Fix thinko in commit eaf559bf ("mlx4_core: Don't free special QPs in
QP number bitmap").  The old commit had the logic exactly backwards
and ended up freeing *only* special QPs, which not only left the
original bug in place but also introduced the problem that the QP
number bitmap would get full after a while.

Found by Dotan Barak of Mellanox.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Jack Morgenstein 17 years ago
parent
commit
e383d19e90
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/net/mlx4/qp.c

+ 1 - 1
drivers/net/mlx4/qp.c

@@ -240,7 +240,7 @@ void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp)
 	mlx4_table_put(dev, &qp_table->auxc_table, qp->qpn);
 	mlx4_table_put(dev, &qp_table->auxc_table, qp->qpn);
 	mlx4_table_put(dev, &qp_table->qp_table, qp->qpn);
 	mlx4_table_put(dev, &qp_table->qp_table, qp->qpn);
 
 
-	if (qp->qpn < dev->caps.sqp_start + 8)
+	if (qp->qpn >= dev->caps.sqp_start + 8)
 		mlx4_bitmap_free(&qp_table->bitmap, qp->qpn);
 		mlx4_bitmap_free(&qp_table->bitmap, qp->qpn);
 }
 }
 EXPORT_SYMBOL_GPL(mlx4_qp_free);
 EXPORT_SYMBOL_GPL(mlx4_qp_free);