From patchwork Tue Mar 20 19:00:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuval Shaia X-Patchwork-Id: 10297729 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3861D600F6 for ; Tue, 20 Mar 2018 19:04:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 28A1128E1F for ; Tue, 20 Mar 2018 19:04:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1D4332954C; Tue, 20 Mar 2018 19:04:02 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 997BB28E1F for ; Tue, 20 Mar 2018 19:04:01 +0000 (UTC) Received: from localhost ([::1]:51395 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyMYC-0006TN-Hb for patchwork-qemu-devel@patchwork.kernel.org; Tue, 20 Mar 2018 15:04:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eyMV4-0004Mf-MX for qemu-devel@nongnu.org; Tue, 20 Mar 2018 15:00:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eyMV1-0005Ey-A9 for qemu-devel@nongnu.org; Tue, 20 Mar 2018 15:00:46 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:41932) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eyMV1-0005En-1A for qemu-devel@nongnu.org; Tue, 20 Mar 2018 15:00:43 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w2KIxQX7137860; Tue, 20 Mar 2018 19:00:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references; s=corp-2017-10-26; bh=LQ814K80L/xuNzQcwlIZhtKvEF9uLF6Wpz0JvpGrRSM=; b=HI3lW8g7yInW346rKBfq0o3xHjmlZrMZAJp3jfNx44Gbcq/r+oWXIx7d1y0fAixtnh6m 5RGshFfU4kNBCtNHPCmfVYpO9tI2u2e+78BcCJ1TY1eoXxYUlFj6Afu8iUSF0M/7VB6/ MQXE7tr7EZc2YewmNHpJsDCYeTngBjZJKYgUjWK9JZI3Sku52MNcquYjCsJhLjYwrNxt 8RvOKr/dZUibH4pl1dSotDfmfKxX0f5MMReYeslmaeRnlyZxHaEf8qstyRtx6wWFfARG Ue0DKEF0NpGmAXvL1S7JdKMzyTTJvUOOSMWWszBZZ2HWs5+XCbM+JnxNoN+i39LIxSld 4A== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2gu82gr09c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 20 Mar 2018 19:00:41 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w2KJ0ffV026323 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 20 Mar 2018 19:00:41 GMT Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w2KJ0fJY014471; Tue, 20 Mar 2018 19:00:41 GMT Received: from localhost.localdomain (/77.138.186.148) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 20 Mar 2018 12:00:40 -0700 From: Yuval Shaia To: yuval.shaia@oracle.com, marcel@redhat.com, qemu-devel@nongnu.org Date: Tue, 20 Mar 2018 21:00:23 +0200 Message-Id: <20180320190023.24077-3-yuval.shaia@oracle.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180320190023.24077-1-yuval.shaia@oracle.com> References: <20180320190023.24077-1-yuval.shaia@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8838 signatures=668695 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1803200127 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 Subject: [Qemu-devel] [PATCH v1 2/2] hw/rdma: Add support for Query QP verb to pvrdma device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This IB verb is needed by some applications - implement it. Signed-off-by: Yuval Shaia --- hw/rdma/vmw/pvrdma_cmd.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c index 293dfed29f..cf8c50af31 100644 --- a/hw/rdma/vmw/pvrdma_cmd.c +++ b/hw/rdma/vmw/pvrdma_cmd.c @@ -515,6 +515,28 @@ static int modify_qp(PVRDMADev *dev, union pvrdma_cmd_req *req, return rsp->hdr.err; } +static int query_qp(PVRDMADev *dev, union pvrdma_cmd_req *req, + union pvrdma_cmd_resp *rsp) +{ + struct pvrdma_cmd_query_qp *cmd = &req->query_qp; + struct pvrdma_cmd_query_qp_resp *resp = &rsp->query_qp_resp; + struct ibv_qp_init_attr init_attr; + + pr_dbg("qp_handle=%d\n", cmd->qp_handle); + + memset(rsp, 0, sizeof(*rsp)); + rsp->hdr.response = cmd->hdr.response; + rsp->hdr.ack = PVRDMA_CMD_QUERY_QP_RESP; + + rsp->hdr.err = rdma_rm_query_qp(&dev->rdma_dev_res, &dev->backend_dev, + cmd->qp_handle, + (struct ibv_qp_attr *)&resp->attrs, -1, + &init_attr); + + pr_dbg("ret=%d\n", rsp->hdr.err); + return rsp->hdr.err; +} + static int destroy_qp(PVRDMADev *dev, union pvrdma_cmd_req *req, union pvrdma_cmd_resp *rsp) { @@ -636,7 +658,7 @@ static struct cmd_handler cmd_handlers[] = { {PVRDMA_CMD_DESTROY_CQ, destroy_cq}, {PVRDMA_CMD_CREATE_QP, create_qp}, {PVRDMA_CMD_MODIFY_QP, modify_qp}, - {PVRDMA_CMD_QUERY_QP, NULL}, + {PVRDMA_CMD_QUERY_QP, query_qp}, {PVRDMA_CMD_DESTROY_QP, destroy_qp}, {PVRDMA_CMD_CREATE_UC, create_uc}, {PVRDMA_CMD_DESTROY_UC, destroy_uc},