From patchwork Tue Mar 20 21:18:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 10298021 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 8590D602B3 for ; Tue, 20 Mar 2018 21:55:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6E3F229659 for ; Tue, 20 Mar 2018 21:55:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 62E3829688; Tue, 20 Mar 2018 21:55:56 +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 autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C458329659 for ; Tue, 20 Mar 2018 21:55:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751423AbeCTVzy (ORCPT ); Tue, 20 Mar 2018 17:55:54 -0400 Received: from mail-it0-f68.google.com ([209.85.214.68]:36065 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751064AbeCTVzy (ORCPT ); Tue, 20 Mar 2018 17:55:54 -0400 Received: by mail-it0-f68.google.com with SMTP id c1-v6so3389651itj.1 for ; Tue, 20 Mar 2018 14:55:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8L8zNx2VN/yQx1aHXpsVjismcYmn27EWMFDmxxjrfEs=; b=hXyu6BCsmTv1MbvqSGg2zKX9dUpV36uDb8fS3QNDqai4b5P8gfgoXwB3ZhpdNdy/BY p4WUwBt2W/UoqMr05mB5JynNwLsY2/5o3CiZxBOa6tx8jl/FBKeFAFBv366Fuwd2qChH yOJCocoddY7/NwyQOhKyKhTxWGqvC6idXlXzMg6nojKXQG5N4okWSddV54CfRQusRwOd sYKGp3PqmC110mJo6itmL5zQ9D0NfZ315ZP4Vm8bCK8oI9I4tmqKkdpb9efELxfNuQEu RfSm+lqC5sh+MnVVw7MPGsihFl8AZZr8mlhxDauNlF1GW/G8wr4pW0FmeDZyrm9fwzS5 Mj7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=8L8zNx2VN/yQx1aHXpsVjismcYmn27EWMFDmxxjrfEs=; b=g6fDjKbxUZDUjvG88RDvnJL2GbXSti41TXBExYrERs+jmxXaGrtYlvon0b+7ufxlih ehnPV/vWB8wtHB960B+YiX2/aB5MLEX7Tw0JL68rpNZ5iqzExeevdj7JZzMwDsheLLCP SZr3b9Aq4MW6sYNcLd0X0m6YhvWWJwcmEkevXJAx/ZdanKgAo9cepQHc7X06se+PlUkY QVZe28XXBYore51tKGWQYKnRr4Ew+dpmc+jnpK8JGBHKSw+G++VG+gAAPzhYiwIU8Tye X/SOMCQ8KootGUOKx6o6rGT7jJwmg2KXyJJrPbknVCZUQQRTR8DQPc+FP6tL3LJ2wEKE UEEw== X-Gm-Message-State: AElRT7Et+SrZJ8yUyUjGLXgTMUzl6dnIgyYH4IgFZYl+G0fayY24ehXM gho2nFGlE8cNufG87xMDXhiyaOjPKyA= X-Google-Smtp-Source: AG47ELtOkzSkl9ZTgFqLmTfNzuvsXRjiqXxF71zDPjF2SXdCC2+D8yZ9w9RVdsJO4omDa/DDyjxLOg== X-Received: by 2002:a24:1995:: with SMTP id b143-v6mr1548624itb.84.1521582952395; Tue, 20 Mar 2018 14:55:52 -0700 (PDT) Received: from ziepe.ca (S010614cc2056d97f.ed.shawcable.net. [174.3.196.123]) by smtp.gmail.com with ESMTPSA id 190sm1664983ioy.54.2018.03.20.14.55.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Mar 2018 14:55:51 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.86_2) (envelope-from ) id 1eyOen-0002g2-OR; Tue, 20 Mar 2018 15:18:57 -0600 From: Jason Gunthorpe To: linux-rdma@vger.kernel.org Cc: Jason Gunthorpe , Adit Ranadive , Yishai Hadas , Matan Barak , pv-drivers@vmware.com Subject: [PATCH rdma-core 15/20] vmw_pvrdma: Use new kABI macros Date: Tue, 20 Mar 2018 15:18:45 -0600 Message-Id: <20180320211850.10090-16-jgg@ziepe.ca> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180320211850.10090-1-jgg@ziepe.ca> References: <20180320211850.10090-1-jgg@ziepe.ca> Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Jason Gunthorpe This driver was using the kABI directly, just move it to use the new macros and drop the 'udata' indirection. Also rename the abi file to pvrdma-abi.h for consistency. Signed-off-by: Jason Gunthorpe --- kernel-headers/CMakeLists.txt | 1 + providers/vmw_pvrdma/cq.c | 6 +-- .../vmw_pvrdma/{pvrdma-abi-fix.h => pvrdma-abi.h} | 45 ++++++---------------- providers/vmw_pvrdma/pvrdma.h | 2 +- providers/vmw_pvrdma/pvrdma_main.c | 2 +- providers/vmw_pvrdma/qp.c | 16 ++++---- providers/vmw_pvrdma/verbs.c | 2 +- 7 files changed, 26 insertions(+), 48 deletions(-) rename providers/vmw_pvrdma/{pvrdma-abi-fix.h => pvrdma-abi.h} (74%) diff --git a/kernel-headers/CMakeLists.txt b/kernel-headers/CMakeLists.txt index c7ad8254e3448e..46147f5827c490 100644 --- a/kernel-headers/CMakeLists.txt +++ b/kernel-headers/CMakeLists.txt @@ -63,4 +63,5 @@ rdma_kernel_provider_abi( rdma/nes-abi.h rdma/qedr-abi.h rdma/rdma_user_rxe.h + rdma/vmw_pvrdma-abi.h ) diff --git a/providers/vmw_pvrdma/cq.c b/providers/vmw_pvrdma/cq.c index 701f0522f7b0dd..885548204d8140 100644 --- a/providers/vmw_pvrdma/cq.c +++ b/providers/vmw_pvrdma/cq.c @@ -239,15 +239,15 @@ struct ibv_cq *pvrdma_create_cq(struct ibv_context *context, int cqe, cq->ring_state = cq->buf.buf; - cmd.udata.buf_addr = (uintptr_t) cq->buf.buf; - cmd.udata.buf_size = cq->buf.length; + cmd.buf_addr = (uintptr_t) cq->buf.buf; + cmd.buf_size = cq->buf.length; ret = ibv_cmd_create_cq(context, cqe, channel, comp_vector, &cq->ibv_cq, &cmd.ibv_cmd, sizeof(cmd), &resp.ibv_resp, sizeof(resp)); if (ret) goto err_buf; - cq->cqn = resp.udata.cqn; + cq->cqn = resp.cqn; cq->cqe_cnt = cq->ibv_cq.cqe; return &cq->ibv_cq; diff --git a/providers/vmw_pvrdma/pvrdma-abi-fix.h b/providers/vmw_pvrdma/pvrdma-abi.h similarity index 74% rename from providers/vmw_pvrdma/pvrdma-abi-fix.h rename to providers/vmw_pvrdma/pvrdma-abi.h index 7c028aeb6b7972..77db9ddd1bb700 100644 --- a/providers/vmw_pvrdma/pvrdma-abi-fix.h +++ b/providers/vmw_pvrdma/pvrdma-abi.h @@ -48,40 +48,17 @@ #include #include +#include -struct user_pvrdma_alloc_ucontext_resp { - struct ib_uverbs_get_context_resp ibv_resp; - struct pvrdma_alloc_ucontext_resp udata; -}; - -struct user_pvrdma_alloc_pd_resp { - struct ib_uverbs_alloc_pd_resp ibv_resp; - struct pvrdma_alloc_pd_resp udata; -}; - -struct user_pvrdma_create_cq { - struct ibv_create_cq ibv_cmd; - struct pvrdma_create_cq udata; -}; - -struct user_pvrdma_create_cq_resp { - struct ib_uverbs_create_cq_resp ibv_resp; - struct pvrdma_create_cq_resp udata; -}; - -struct user_pvrdma_create_srq { - struct ibv_create_srq ibv_cmd; - struct pvrdma_create_srq udata; -}; - -struct user_pvrdma_create_srq_resp { - struct ib_uverbs_create_srq_resp ibv_resp; - struct pvrdma_create_srq_resp udata; -}; - -struct user_pvrdma_create_qp { - struct ibv_create_qp ibv_cmd; - struct pvrdma_create_qp udata; -}; +DECLARE_DRV_CMD(user_pvrdma_alloc_pd, IB_USER_VERBS_CMD_ALLOC_PD, + empty, pvrdma_alloc_pd_resp); +DECLARE_DRV_CMD(user_pvrdma_create_cq, IB_USER_VERBS_CMD_CREATE_CQ, + pvrdma_create_cq, pvrdma_create_cq_resp); +DECLARE_DRV_CMD(user_pvrdma_create_qp, IB_USER_VERBS_CMD_CREATE_QP, + pvrdma_create_qp, empty); +DECLARE_DRV_CMD(user_pvrdma_create_srq, IB_USER_VERBS_CMD_CREATE_SRQ, + pvrdma_create_srq, pvrdma_create_srq_resp); +DECLARE_DRV_CMD(user_pvrdma_alloc_ucontext, IB_USER_VERBS_CMD_GET_CONTEXT, + empty, pvrdma_alloc_ucontext_resp); #endif /* __PVRDMA_ABI_FIX_H__ */ diff --git a/providers/vmw_pvrdma/pvrdma.h b/providers/vmw_pvrdma/pvrdma.h index b6f2772682778a..23c1e919a874ab 100644 --- a/providers/vmw_pvrdma/pvrdma.h +++ b/providers/vmw_pvrdma/pvrdma.h @@ -58,7 +58,7 @@ #include #include -#include "pvrdma-abi-fix.h" +#include "pvrdma-abi.h" #include "pvrdma_ring.h" #define PFX "pvrdma: " diff --git a/providers/vmw_pvrdma/pvrdma_main.c b/providers/vmw_pvrdma/pvrdma_main.c index cbcc855660c4df..2c79094f9a0f84 100644 --- a/providers/vmw_pvrdma/pvrdma_main.c +++ b/providers/vmw_pvrdma/pvrdma_main.c @@ -116,7 +116,7 @@ static int pvrdma_init_context_shared(struct pvrdma_context *context, &resp.ibv_resp, sizeof(resp))) return errno; - context->qp_tbl = calloc(resp.udata.qp_tab_size & 0xFFFF, + context->qp_tbl = calloc(resp.qp_tab_size & 0xFFFF, sizeof(struct pvrdma_qp *)); if (!context->qp_tbl) return -ENOMEM; diff --git a/providers/vmw_pvrdma/qp.c b/providers/vmw_pvrdma/qp.c index 4b9f897633dfa3..ef429db93a43f3 100644 --- a/providers/vmw_pvrdma/qp.c +++ b/providers/vmw_pvrdma/qp.c @@ -137,8 +137,8 @@ struct ibv_srq *pvrdma_create_srq(struct ibv_pd *pd, pvrdma_init_srq_queue(srq); memset(&cmd, 0, sizeof(cmd)); - cmd.udata.buf_addr = (uintptr_t) srq->buf.buf; - cmd.udata.buf_size = srq->buf.length; + cmd.buf_addr = (uintptr_t) srq->buf.buf; + cmd.buf_size = srq->buf.length; ret = ibv_cmd_create_srq(pd, &srq->ibv_srq, attr, &cmd.ibv_cmd, sizeof(cmd), @@ -147,7 +147,7 @@ struct ibv_srq *pvrdma_create_srq(struct ibv_pd *pd, if (ret) goto err_free; - srq->srqn = resp.udata.srqn; + srq->srqn = resp.srqn; return &srq->ibv_srq; @@ -276,11 +276,11 @@ struct ibv_qp *pvrdma_create_qp(struct ibv_pd *pd, pvrdma_init_qp_queue(qp); memset(&cmd, 0, sizeof(cmd)); - cmd.udata.sbuf_addr = (uintptr_t)qp->sbuf.buf; - cmd.udata.sbuf_size = qp->sbuf.length; - cmd.udata.rbuf_addr = (uintptr_t)qp->rbuf.buf; - cmd.udata.rbuf_size = qp->rbuf.length; - cmd.udata.qp_addr = (uintptr_t) qp; + cmd.sbuf_addr = (uintptr_t)qp->sbuf.buf; + cmd.sbuf_size = qp->sbuf.length; + cmd.rbuf_addr = (uintptr_t)qp->rbuf.buf; + cmd.rbuf_size = qp->rbuf.length; + cmd.qp_addr = (uintptr_t) qp; ret = ibv_cmd_create_qp(pd, &qp->ibv_qp, attr, &cmd.ibv_cmd, sizeof(cmd), diff --git a/providers/vmw_pvrdma/verbs.c b/providers/vmw_pvrdma/verbs.c index b1ba0d652c1cf2..86d55806b89abd 100644 --- a/providers/vmw_pvrdma/verbs.c +++ b/providers/vmw_pvrdma/verbs.c @@ -93,7 +93,7 @@ struct ibv_pd *pvrdma_alloc_pd(struct ibv_context *context) return NULL; } - pd->pdn = resp.udata.pdn; + pd->pdn = resp.pdn; return &pd->ibv_pd; }