From: Leon Romanovsky <leon@kernel.org>
To: Zhu Yanjun <yanjun.zhu@intel.com>
Cc: mustafa.ismail@intel.com, shiraz.saleem@intel.com, jgg@ziepe.ca,
linux-rdma@vger.kernel.org, Zhu Yanjun <yanjun.zhu@linux.dev>
Subject: Re: [PATCHv2 for-next 3/4] RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp
Date: Sun, 15 Jan 2023 13:23:47 +0200 [thread overview]
Message-ID: <Y8PiQz47jQurznMH@unreal> (raw)
In-Reply-To: <20230112000617.1659337-4-yanjun.zhu@intel.com>
On Wed, Jan 11, 2023 at 07:06:16PM -0500, Zhu Yanjun wrote:
> From: Zhu Yanjun <yanjun.zhu@linux.dev>
>
> Split the source codes related with QP handling into a new function.
>
> Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
> ---
> drivers/infiniband/hw/irdma/verbs.c | 48 ++++++++++++++++++++---------
> 1 file changed, 34 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
> index f4712276b920..74dd1972c325 100644
> --- a/drivers/infiniband/hw/irdma/verbs.c
> +++ b/drivers/infiniband/hw/irdma/verbs.c
> @@ -2834,6 +2834,39 @@ static void irdma_free_iwmr(struct irdma_mr *iwmr)
> kfree(iwmr);
> }
>
> +static int irdma_reg_user_mr_type_qp(struct irdma_mem_reg_req req,
> + struct ib_udata *udata,
> + struct irdma_mr *iwmr)
> +{
> + u32 total;
> + int err;
> + u8 shadow_pgcnt = 1;
It is constant, you don't need variable for that.
> + bool use_pbles;
> + unsigned long flags;
> + struct irdma_ucontext *ucontext;
> + struct irdma_pbl *iwpbl = &iwmr->iwpbl;
> + struct irdma_device *iwdev = to_iwdev(iwmr->ibmr.device);
> +
> + total = req.sq_pages + req.rq_pages + shadow_pgcnt;
> + if (total > iwmr->page_cnt)
> + return -EINVAL;
> +
> + total = req.sq_pages + req.rq_pages;
> + use_pbles = (total > 2);
There is no need in brackets here.
> + err = irdma_handle_q_mem(iwdev, &req, iwpbl, use_pbles);
> + if (err)
> + return err;
> +
> + ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext,
> + ibucontext);
> + spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
> + list_add_tail(&iwpbl->list, &ucontext->qp_reg_mem_list);
> + iwpbl->on_list = true;
> + spin_unlock_irqrestore(&ucontext->qp_reg_mem_list_lock, flags);
> +
> + return err;
return 0;
> +}
> +
> /**
> * irdma_reg_user_mr - Register a user memory region
> * @pd: ptr of pd
> @@ -2889,23 +2922,10 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
>
> switch (req.reg_type) {
> case IRDMA_MEMREG_TYPE_QP:
> - total = req.sq_pages + req.rq_pages + shadow_pgcnt;
> - if (total > iwmr->page_cnt) {
> - err = -EINVAL;
> - goto error;
> - }
> - total = req.sq_pages + req.rq_pages;
> - use_pbles = (total > 2);
> - err = irdma_handle_q_mem(iwdev, &req, iwpbl, use_pbles);
> + err = irdma_reg_user_mr_type_qp(req, udata, iwmr);
> if (err)
> goto error;
>
> - ucontext = rdma_udata_to_drv_context(udata, struct irdma_ucontext,
> - ibucontext);
> - spin_lock_irqsave(&ucontext->qp_reg_mem_list_lock, flags);
> - list_add_tail(&iwpbl->list, &ucontext->qp_reg_mem_list);
> - iwpbl->on_list = true;
> - spin_unlock_irqrestore(&ucontext->qp_reg_mem_list_lock, flags);
> break;
> case IRDMA_MEMREG_TYPE_CQ:
> if (iwdev->rf->sc_dev.hw_attrs.uk_attrs.feature_flags & IRDMA_FEATURE_CQ_RESIZE)
> --
> 2.31.1
>
next prev parent reply other threads:[~2023-01-15 11:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-12 0:06 [PATCHv2 for-next 0/4] RDMA/irdma: Refactor irdma_reg_user_mr function Zhu Yanjun
2023-01-12 0:06 ` [PATCHv2 for-next 1/4] RDMA/irdma: Split MEM handler into irdma_reg_user_mr_type_mem Zhu Yanjun
2023-01-15 11:20 ` Leon Romanovsky
2023-01-16 2:56 ` yanjun.zhu
2023-01-12 0:06 ` [PATCHv2 for-next 2/4] RDMA/irdma: Split mr alloc and free into new functions Zhu Yanjun
2023-01-12 0:06 ` [PATCHv2 for-next 3/4] RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp Zhu Yanjun
2023-01-15 11:23 ` Leon Romanovsky [this message]
2023-01-16 2:58 ` yanjun.zhu
2023-01-12 0:06 ` [PATCHv2 for-next 4/4] RDMA/irdma: Split CQ handler into irdma_reg_user_mr_type_cq Zhu Yanjun
2023-01-15 11:28 ` Leon Romanovsky
2023-01-16 3:03 ` yanjun.zhu
2023-01-12 16:42 ` [PATCHv2 for-next 0/4] RDMA/irdma: Refactor irdma_reg_user_mr function Saleem, Shiraz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y8PiQz47jQurznMH@unreal \
--to=leon@kernel.org \
--cc=jgg@ziepe.ca \
--cc=linux-rdma@vger.kernel.org \
--cc=mustafa.ismail@intel.com \
--cc=shiraz.saleem@intel.com \
--cc=yanjun.zhu@intel.com \
--cc=yanjun.zhu@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.