Re: [PATCH rdma-next 7/7] RDMA/core: Create clean QP creations interface for uverbs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 21, 2021 at 07:48:48AM +0100, Christoph Hellwig wrote:
> > +struct ib_qp *ib_create_qp_user(struct ib_device *dev, struct ib_pd *pd,
> > +				struct ib_qp_init_attr *attr,
> > +				struct ib_udata *udata,
> > +				struct ib_uqp_object *uobj, const char *caller);
> > +static inline struct ib_qp *ib_create_qp_uverbs(struct ib_device *dev,
> > +						struct ib_pd *pd,
> > +						struct ib_qp_init_attr *attr,
> > +						struct ib_udata *udata,
> > +						struct ib_uqp_object *uobj)
> > +{
> > +	if (attr->qp_type == IB_QPT_XRC_TGT)
> > +		return ib_create_qp_user(dev, pd, attr, NULL, uobj,
> > +					 KBUILD_MODNAME);
> > +
> > +	return ib_create_qp_user(dev, pd, attr, udata, uobj, NULL);
> 
> Why not always pass along the udata and caller and just not use them
> in the low-level code?

You will need to add some sort of "if qp tpye" for ib_create_qp_uverbs() callers,
because they always provide udata != NULL. 

After this series, the callers look like this:

 1438         qp = ib_create_qp_uverbs(device, pd, &attr, &attrs->driver_udata, obj);
                                                          ^^^^^^^^^ not NULL

So instead of bothering callers, I implemented it here with one "if".

Thanks



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux