diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2007-11-14 09:33:27 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-11-14 11:20:03 -0500 |
commit | e383d19e90cfbbf8e00512d44194ce175b3f60a2 (patch) | |
tree | fb1c2b81505605998cca9062d10b816784f6559f /drivers/net | |
parent | 9a7666494bac60b99d2bd7d904bd22e8c9b1e3f7 (diff) |
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>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/mlx4/qp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/mlx4/qp.c b/drivers/net/mlx4/qp.c index cc4b1be18219..42b47639c81c 100644 --- a/drivers/net/mlx4/qp.c +++ b/drivers/net/mlx4/qp.c | |||
@@ -240,7 +240,7 @@ 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 | if (qp->qpn < dev->caps.sqp_start + 8) | 243 | if (qp->qpn >= dev->caps.sqp_start + 8) |
244 | mlx4_bitmap_free(&qp_table->bitmap, qp->qpn); | 244 | mlx4_bitmap_free(&qp_table->bitmap, qp->qpn); |
245 | } | 245 | } |
246 | EXPORT_SYMBOL_GPL(mlx4_qp_free); | 246 | EXPORT_SYMBOL_GPL(mlx4_qp_free); |