diff options
author | Roland Dreier <rolandd@cisco.com> | 2007-10-09 19:59:05 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-09 19:59:05 -0700 |
commit | eaf559bf566f76887533c077d425adce847f06c8 (patch) | |
tree | 3ebe7ff1b45cd648a2aa190d437ba923263455c9 | |
parent | 36ce10d3e849c2f9efa3fd647058de398ee276eb (diff) | |
download | linux-3.10-eaf559bf566f76887533c077d425adce847f06c8.tar.gz linux-3.10-eaf559bf566f76887533c077d425adce847f06c8.tar.bz2 linux-3.10-eaf559bf566f76887533c077d425adce847f06c8.zip |
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>
-rw-r--r-- | drivers/net/mlx4/qp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/mlx4/qp.c b/drivers/net/mlx4/qp.c index 19b48c71cf7..278414b2d01 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) mlx4_table_put(dev, &qp_table->auxc_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); |