-----"Jason Gunthorpe" <jgg@xxxxxxxx> wrote: ----- >To: "Bernard Metzler" <BMT@xxxxxxxxxxxxxx> >From: "Jason Gunthorpe" <jgg@xxxxxxxx> >Date: 10/04/2019 07:48PM >Cc: "Leon Romanovsky" <leon@xxxxxxxxxx>, linux-rdma@xxxxxxxxxxxxxxx, >bharat@xxxxxxxxxxx, nirranjan@xxxxxxxxxxx, krishna2@xxxxxxxxxxx, >bvanassche@xxxxxxx >Subject: [EXTERNAL] Re: Re: [[PATCH v2 for-next]] RDMA/siw: Fix SQ/RQ >drain logic > >On Fri, Oct 04, 2019 at 02:09:57PM +0000, Bernard Metzler wrote: >> <...> >> >> >> * >> >> @@ -705,6 +746,12 @@ int siw_post_send(struct ib_qp *base_qp, >const >> >struct ib_send_wr *wr, >> >> unsigned long flags; >> >> int rv = 0; >> >> >> >> + if (wr && !qp->kernel_verbs) { >> > >> >It is not related to this specific patch, but all siw >"kernel_verbs" >> >should go, we have standard way to distinguish between kernel and >> >user >> >verbs. >> > >> >Thanks >> > >> Understood. I think we touched on that already. >> rdma core objects have a uobject pointer which >> is valid only if it belongs to a user land >> application. We might better use that. > >No, the uobject pointer is not to be touched by drivers > Now what would be the appropriate way of remembering/ detecting user level nature of endpoint resources? I see drivers _are_ doing 'if (!ibqp->uobject)' ... Other drivers keep it with the private state, like iw40, but I learned we shall get rid of it. We may export an inline query from RDMA core, or simply #define is_usermode(ib_obj *) (ib_obj->uobject != NULL) ? Thanks and best regards, Bernard