From: Jason Gunthorpe Date: Sun, 25 Nov 2018 18:58:40 +0000 (+0200) Subject: RDMA/uverbs: Fill in the response for IB_USER_VERBS_EX_CMD_MODIFY_QP X-Git-Tag: v5.15~7314^2~126^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=40efca7a46a04223e6792fbe23ba337f54cff794;p=platform%2Fkernel%2Flinux-starfive.git RDMA/uverbs: Fill in the response for IB_USER_VERBS_EX_CMD_MODIFY_QP A response struct was defined, and userspace is providing it (but not checking it). Fill it in and write it out. Signed-off-by: Jason Gunthorpe Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford --- diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c index 7f8b0a7dc..c605412 100644 --- a/drivers/infiniband/core/uverbs_cmd.c +++ b/drivers/infiniband/core/uverbs_cmd.c @@ -1953,6 +1953,9 @@ static int ib_uverbs_ex_modify_qp(struct uverbs_attr_bundle *attrs, struct ib_udata *ucore) { struct ib_uverbs_ex_modify_qp cmd; + struct ib_uverbs_ex_modify_qp_resp resp = { + .response_length = uverbs_response_length(attrs, sizeof(resp)) + }; int ret; ret = uverbs_request(attrs, &cmd, sizeof(cmd)); @@ -1969,7 +1972,11 @@ static int ib_uverbs_ex_modify_qp(struct uverbs_attr_bundle *attrs, ~((IB_USER_LAST_QP_ATTR_MASK << 1) - 1)) return -EOPNOTSUPP; - return modify_qp(attrs, &cmd); + ret = modify_qp(attrs, &cmd); + if (ret) + return ret; + + return uverbs_response(attrs, &resp, sizeof(resp)); } static int ib_uverbs_destroy_qp(struct uverbs_attr_bundle *attrs,