diff options
Diffstat (limited to 'drivers/net/mlx4/qp.c')
-rw-r--r-- | drivers/net/mlx4/qp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/mlx4/qp.c b/drivers/net/mlx4/qp.c index 19b48c71cf7f..cc4b1be18219 100644 --- a/drivers/net/mlx4/qp.c +++ b/drivers/net/mlx4/qp.c | |||
@@ -240,7 +240,8 @@ void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp) | |||
240 | mlx4_table_put(dev, &qp_table->auxc_table, qp->qpn); | 240 | mlx4_table_put(dev, &qp_table->auxc_table, qp->qpn); |
241 | mlx4_table_put(dev, &qp_table->qp_table, qp->qpn); | 241 | mlx4_table_put(dev, &qp_table->qp_table, qp->qpn); |
242 | 242 | ||
243 | mlx4_bitmap_free(&qp_table->bitmap, qp->qpn); | 243 | if (qp->qpn < dev->caps.sqp_start + 8) |
244 | mlx4_bitmap_free(&qp_table->bitmap, qp->qpn); | ||
244 | } | 245 | } |
245 | EXPORT_SYMBOL_GPL(mlx4_qp_free); | 246 | EXPORT_SYMBOL_GPL(mlx4_qp_free); |
246 | 247 | ||
@@ -250,7 +251,7 @@ static int mlx4_CONF_SPECIAL_QP(struct mlx4_dev *dev, u32 base_qpn) | |||
250 | MLX4_CMD_TIME_CLASS_B); | 251 | MLX4_CMD_TIME_CLASS_B); |
251 | } | 252 | } |
252 | 253 | ||
253 | int __devinit mlx4_init_qp_table(struct mlx4_dev *dev) | 254 | int mlx4_init_qp_table(struct mlx4_dev *dev) |
254 | { | 255 | { |
255 | struct mlx4_qp_table *qp_table = &mlx4_priv(dev)->qp_table; | 256 | struct mlx4_qp_table *qp_table = &mlx4_priv(dev)->qp_table; |
256 | int err; | 257 | int err; |