Browse Source

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>
Oren Duer 17 years ago
parent
commit
c5057ddccb
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/net/mlx4/mr.c

+ 1 - 1
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;
 	u64 mtt_seg;
 	int err = -ENOMEM;
 	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;
 		return -EINVAL;
 
 
 	/* All MTTs must fit in the same page */
 	/* All MTTs must fit in the same page */