On 4/18/2016 3:43 PM, Or Gerlitz wrote: > On Mon, Apr 18, 2016 at 7:25 PM, Majd Dibbiny <majd@xxxxxxxxxxxx> wrote: >> From: Bodong Wang <bodong@xxxxxxxxxxxx> >> >> LSO capabilities include the max LSO packet size in byte, and what QP >> types the hardware supports. > size in bytes > >> Relevant verbs to report LSO caps from kernel to user space is updated >> accordingly. > verbs ... is --> verbs ... are > >> Signed-off-by: Bodong Wang <bodong@xxxxxxxxxxxx> >> Signed-off-by: Majd Dibbiny <majd@xxxxxxxxxxxx> >> Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx> >> --- >> drivers/infiniband/core/uverbs_cmd.c | 7 +++++++ >> include/rdma/ib_verbs.h | 6 ++++++ >> include/uapi/rdma/ib_user_verbs.h | 6 ++++++ >> 3 files changed, 19 insertions(+) >> >> diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c >> index 6fdc7ec..b0fb94b 100644 >> --- a/drivers/infiniband/core/uverbs_cmd.c >> +++ b/drivers/infiniband/core/uverbs_cmd.c >> @@ -3655,6 +3655,13 @@ int ib_uverbs_ex_query_device(struct ib_uverbs_file *file, >> resp.hca_core_clock = attr.hca_core_clock; >> resp.response_length += sizeof(resp.hca_core_clock); >> >> + if (ucore->outlen < resp.response_length + sizeof(resp.lso_caps)) >> + goto end; >> + >> + resp.lso_caps.max_lso = attr.lso_caps.max_lso; >> + resp.lso_caps.supported_qpts = attr.lso_caps.supported_qpts; >> + resp.response_length += sizeof(resp.lso_caps); >> + >> end: >> err = ib_copy_to_udata(ucore, &resp, resp.response_length); >> return err; >> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h >> index fb2cef4..d5a466f 100644 >> --- a/include/rdma/ib_verbs.h >> +++ b/include/rdma/ib_verbs.h >> @@ -271,6 +271,11 @@ struct ib_cq_init_attr { >> u32 flags; >> }; >> >> +struct ib_lso_caps { >> + u32 max_lso; >> + u32 supported_qpts; /* Use enum ib_qp_type */ >> +}; >> + >> struct ib_device_attr { >> u64 fw_ver; >> __be64 sys_image_guid; >> @@ -317,6 +322,7 @@ struct ib_device_attr { >> struct ib_odp_caps odp_caps; >> uint64_t timestamp_mask; >> uint64_t hca_core_clock; /* in KHZ */ >> + struct ib_lso_caps lso_caps; >> }; >> >> enum ib_mtu { >> diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h >> index 8126c14..fa039f5 100644 >> --- a/include/uapi/rdma/ib_user_verbs.h >> +++ b/include/uapi/rdma/ib_user_verbs.h >> @@ -219,6 +219,11 @@ struct ib_uverbs_odp_caps { >> __u32 reserved; >> }; >> >> +struct ib_uverbs_lso_caps { >> + __u32 max_lso; >> + __u32 supported_qpts; /* Use enum ib_qp_type */ >> +}; >> + >> struct ib_uverbs_ex_query_device_resp { >> struct ib_uverbs_query_device_resp base; >> __u32 comp_mask; >> @@ -226,6 +231,7 @@ struct ib_uverbs_ex_query_device_resp { >> struct ib_uverbs_odp_caps odp_caps; >> __u64 timestamp_mask; >> __u64 hca_core_clock; /* in KHZ */ >> + struct ib_uverbs_lso_caps lso_caps; >> }; Will fix. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html