Bläddra i källkod

mlx4_core: Don't free special QPs in QP number bitmap

Special QPs are not allocated using the regular QP number bitmap, so
when they are destroyed, their QP number should not be freed in the
bitmap.

Found by Dotan Barak of Mellanox.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Roland Dreier 17 år sedan
förälder
incheckning
eaf559bf56
1 ändrade filer med 2 tillägg och 1 borttagningar
  1. 2 1
      drivers/net/mlx4/qp.c

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

@@ -240,7 +240,8 @@ 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);
 
 
-	mlx4_bitmap_free(&qp_table->bitmap, qp->qpn);
+	if (qp->qpn < dev->caps.sqp_start + 8)
+		mlx4_bitmap_free(&qp_table->bitmap, qp->qpn);
 }
 }
 EXPORT_SYMBOL_GPL(mlx4_qp_free);
 EXPORT_SYMBOL_GPL(mlx4_qp_free);