diff options
author | Michael S. Tsirkin <mst@dev.mellanox.co.il> | 2007-03-25 09:17:43 (GMT) |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-03-26 22:59:32 (GMT) |
commit | 0264d8853137a9a328d9f0ed29e083dd505512cb (patch) | |
tree | 3ead2da8617188048829402650d6a36772658afe /drivers/infiniband/hw/mthca | |
parent | ed6ee5178e6d78ba7f79a5ece3f0b70ece531a6a (diff) | |
download | linux-fsl-qoriq-0264d8853137a9a328d9f0ed29e083dd505512cb.tar.xz |
IB/mthca: Fix thinko in init_mr_table()
Commit c20e20ab ("IB/mthca: Merge MR and FMR space on 64-bit systems")
swapped the number of MTTs and MPTs when initializing the MR table. As
a result, we get a kernel oops when the number of MTT segments
allocated exceeds 0x20000.
Noted by Troy Benjegerdes <troy@scl.ameslab.gov>, and reproduced by
Dotan Barak <dotanb@mellanox.co.il>. This fixes
https://bugs.openfabrics.org/show_bug.cgi?id=490
Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/mthca')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_mr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c index 8e4846b..fdb576d 100644 --- a/drivers/infiniband/hw/mthca/mthca_mr.c +++ b/drivers/infiniband/hw/mthca/mthca_mr.c @@ -881,8 +881,8 @@ int mthca_init_mr_table(struct mthca_dev *dev) } mpts = mtts = 1 << i; } else { - mpts = dev->limits.num_mtt_segs; - mtts = dev->limits.num_mpts; + mtts = dev->limits.num_mtt_segs; + mpts = dev->limits.num_mpts; } if (!mthca_is_memfree(dev) && |