NOTE!!
This patch also affects interpretation of page_size_cap field in the 
ib_device_attr struct in file ib_verbs.h (i.e., for all providers).
The page_size_cap field is interpreted here as a bitmap of 
power-of-2 page sizes supported by the device.

Signed-off-by: Jack Morgenstein <[EMAIL PROTECTED]>

Index: linux-kernel/drivers/infiniband/include/rdma/ib_verbs.h
===================================================================
--- linux-kernel/drivers/infiniband/include/rdma/ib_verbs.h     (revision 3827)
+++ linux-kernel/drivers/infiniband/include/rdma/ib_verbs.h     (working copy)
@@ -91,6 +91,7 @@
        __be64                  node_guid;
        __be64                  sys_image_guid;
        u64                     max_mr_size;
+       /* page_size_cap is a bitmap of supported power-of-2 page sizes. */
        u64                     page_size_cap;
        u32                     vendor_id;
        u32                     vendor_part_id;
Index: linux-kernel/drivers/infiniband/hw/mthca/mthca_dev.h
===================================================================
--- linux-kernel/drivers/infiniband/hw/mthca/mthca_dev.h        (revision 3827)
+++ linux-kernel/drivers/infiniband/hw/mthca/mthca_dev.h        (working copy)
@@ -154,6 +154,8 @@
        int      reserved_mcgs;
        int      num_pds;
        int      reserved_pds;
+       /* page_size_cap is a bitmap of supported power-of-2 page sizes. */
+       u32      page_size_cap;
        u32      flags;
        u8       port_width_cap;
 };
Index: linux-kernel/drivers/infiniband/hw/mthca/mthca_main.c
===================================================================
--- linux-kernel/drivers/infiniband/hw/mthca/mthca_main.c       (revision 3827)
+++ linux-kernel/drivers/infiniband/hw/mthca/mthca_main.c       (working copy)
@@ -168,6 +168,7 @@
        mdev->limits.max_srq_wqes       = dev_lim->max_srq_sz;
        mdev->limits.reserved_srqs      = dev_lim->reserved_srqs;
        mdev->limits.reserved_eecs      = dev_lim->reserved_eecs;
+       mdev->limits.page_size_cap      = ~(u32)(dev_lim->min_page_sz - 1);
        /*
         * Subtract 1 from the limit because we need to allocate a
         * spare CQE so the HCA HW can tell the difference between an
Index: linux-kernel/drivers/infiniband/hw/mthca/mthca_provider.c
===================================================================
--- linux-kernel/drivers/infiniband/hw/mthca/mthca_provider.c   (revision 3827)
+++ linux-kernel/drivers/infiniband/hw/mthca/mthca_provider.c   (working copy)
@@ -111,6 +111,7 @@
        props->max_mcast_qp_attach = MTHCA_QP_PER_MGM;
        props->max_total_mcast_qp_attach = props->max_mcast_qp_attach * 
                                           props->max_mcast_grp;
+       props->page_size_cap       = (u64)mdev->limits.page_size_cap;
 
        err = 0;
  out:
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to