diff options
author | Sagi Grimberg <sagig@mellanox.com> | 2016-02-29 20:07:32 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-03-04 19:59:34 +0300 |
commit | f5aa9159a418726d74b67c8815ffd2739afb4c7a (patch) | |
tree | 2205e3e00c4200279cd467f787c7aaae0204a5fd /drivers/infiniband/core | |
parent | 911f4331bc87f4589b9096f4fb24b335d4c2967d (diff) | |
download | linux-f5aa9159a418726d74b67c8815ffd2739afb4c7a.tar.xz |
IB/core: Add arbitrary sg_list support
Devices that are capable in registering SG lists
with gaps can now expose it in the core to ULPs
using a new device capability IB_DEVICE_SG_GAPS_REG
(in a new field device_cap_flags_ex in the device attributes
as we ran out of bits), and a new mr_type IB_MR_TYPE_SG_GAPS_REG
which allocates a memory region which is capable of handling
SG lists with gaps.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/verbs.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index 5af6d024e053..16f3fb1b9d75 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c @@ -1567,6 +1567,8 @@ EXPORT_SYMBOL(ib_check_mr_status); * - The last sg element is allowed to have length less than page_size. * - If sg_nents total byte length exceeds the mr max_num_sge * page_size * then only max_num_sg entries will be mapped. + * - If the MR was allocated with type IB_MR_TYPE_SG_GAPS_REG, non of these + * constraints holds and the page_size argument is ignored. * * Returns the number of sg elements that were mapped to the memory region. * |