mlx4_core: Fix meaning of dev->caps.reserved_mtts
authorRoland Dreier <rolandd@cisco.com>
Wed, 10 Oct 2007 02:59:16 +0000 (19:59 -0700)
committerRoland Dreier <rolandd@cisco.com>
Wed, 10 Oct 2007 02:59:16 +0000 (19:59 -0700)
Everything that uses caps.reserved_mtts expects it to be a count of MTT
segments, not MTT entries.  So convert the value that the FW gives us to
a count of segments.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/net/mlx4/main.c

index 07c2847a7cc8501819f0235e82fd534a14e53411..ed7e8d76cde04899b293f51fdd9998e2487eb126 100644 (file)
@@ -149,7 +149,8 @@ static int __devinit mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev
        dev->caps.max_cqes           = dev_cap->max_cq_sz - 1;
        dev->caps.reserved_cqs       = dev_cap->reserved_cqs;
        dev->caps.reserved_eqs       = dev_cap->reserved_eqs;
-       dev->caps.reserved_mtts      = dev_cap->reserved_mtts;
+       dev->caps.reserved_mtts      = DIV_ROUND_UP(dev_cap->reserved_mtts,
+                                                   MLX4_MTT_ENTRY_PER_SEG);
        dev->caps.reserved_mrws      = dev_cap->reserved_mrws;
        dev->caps.reserved_uars      = dev_cap->reserved_uars;
        dev->caps.reserved_pds       = dev_cap->reserved_pds;