summaryrefslogtreecommitdiffstats
path: root/drivers/net/mlx4
diff options
context:
space:
mode:
authorOren Duer <oren@mellanox.co.il>2008-05-06 00:56:52 +0200
committerRoland Dreier <rolandd@cisco.com>2008-05-06 00:56:52 +0200
commitc5057ddccbcb4bf363af628d7963a7475f4114a7 (patch)
tree4f304c61335dc607d51e6b242d058c430388708e /drivers/net/mlx4
parentIB/ehca: Fix function return types (diff)
downloadlinux-c5057ddccbcb4bf363af628d7963a7475f4114a7.tar.xz
linux-c5057ddccbcb4bf363af628d7963a7475f4114a7.zip
mlx4_core: Support creation of FMRs with pages smaller than 4K
Don't hard code a test against a minimum page shift of 12, since the device may support smaller pages. Test against the actual smallest page size from the device capabilities. Signed-off-by: Oren Duer <oren@mellanox.co.il> Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/net/mlx4')
-rw-r--r--drivers/net/mlx4/mr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index cb46446b2691..03a9abcce524 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -551,7 +551,7 @@ int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages,
u64 mtt_seg;
int err = -ENOMEM;
- if (page_shift < 12 || page_shift >= 32)
+ if (page_shift < (ffs(dev->caps.page_size_cap) - 1) || page_shift >= 32)
return -EINVAL;
/* All MTTs must fit in the same page */