On Wed, Mar 17, 2021 at 05:09:40PM +0800, Weihang Li wrote: > From: Yixing Liu <liuyixing1@xxxxxxxxxx> > > Encapsulate two subprocesses into functions. > > Signed-off-by: Yixing Liu <liuyixing1@xxxxxxxxxx> > Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx> > drivers/infiniband/hw/hns/hns_roce_cq.c | 87 ++++++++++++++++++++++----------- > 1 file changed, 59 insertions(+), 28 deletions(-) > > diff --git a/drivers/infiniband/hw/hns/hns_roce_cq.c b/drivers/infiniband/hw/hns/hns_roce_cq.c > index 74fc494..467caa9 100644 > +++ b/drivers/infiniband/hw/hns/hns_roce_cq.c > @@ -276,6 +276,58 @@ static void free_cq_db(struct hns_roce_dev *hr_dev, struct hns_roce_cq *hr_cq, > } > } > > +static int verify_cq_create_attr(struct hns_roce_dev *hr_dev, > + const struct ib_cq_init_attr *attr) > +{ > + struct ib_device *ibdev = &hr_dev->ib_dev; > + > + if (!attr->cqe || attr->cqe > hr_dev->caps.max_cqes) { > + ibdev_err(ibdev, "failed to check CQ count %u, max = %u.\n", > + attr->cqe, hr_dev->caps.max_cqes); > + return -EINVAL; > + } > + > + if (attr->comp_vector >= hr_dev->caps.num_comp_vectors) { > + ibdev_err(ibdev, "failed to check CQ vector = %u, max = %d.\n", > + attr->comp_vector, hr_dev->caps.num_comp_vectors); > + return -EINVAL; > + } > + > + return 0; > +} > + > +static int get_cq_ucmd(struct hns_roce_cq *hr_cq, struct ib_udata *udata, > + struct hns_roce_ib_create_cq *ucmd) > +{ > + struct ib_device *ibdev = hr_cq->ib_cq.device; > + int ret; > + > + ret = ib_copy_from_udata(ucmd, udata, min(udata->inlen, > + sizeof(*ucmd))); Is this leading up to something? Wrapping one function in another is getting a bit silly Jason