On Tue, Dec 10, 2019 at 05:17:29PM +0100, Bernard Metzler wrote: > Change siw_qp to contain ib_qp. Use rdma_is_kernel_res() > on contained ib_qp to distinguish kernel level from user > level applications resources. Apply same mechanism for > kernel/user level application detection to completion queues. > > Signed-off-by: Bernard Metzler <bmt@xxxxxxxxxxxxxx> > --- > Changelog: > v1 -> v2: Use rdma_is_kernel_res() to detect > kernel level application. > > drivers/infiniband/sw/siw/siw.h | 26 +++--------- > drivers/infiniband/sw/siw/siw_cq.c | 2 +- > drivers/infiniband/sw/siw/siw_main.c | 2 +- > drivers/infiniband/sw/siw/siw_qp.c | 13 +++--- > drivers/infiniband/sw/siw/siw_qp_rx.c | 6 +-- > drivers/infiniband/sw/siw/siw_qp_tx.c | 2 +- > drivers/infiniband/sw/siw/siw_verbs.c | 61 +++++++++++---------------- > 7 files changed, 42 insertions(+), 70 deletions(-) > > diff --git a/drivers/infiniband/sw/siw/siw.h b/drivers/infiniband/sw/siw/siw.h > index b939f489cd46..2bf7a7300343 100644 > --- a/drivers/infiniband/sw/siw/siw.h > +++ b/drivers/infiniband/sw/siw/siw.h > @@ -7,6 +7,7 @@ > #define _SIW_H > > #include <rdma/ib_verbs.h> > +#include <rdma/restrack.h> > #include <linux/socket.h> > #include <linux/skbuff.h> > #include <crypto/hash.h> > @@ -209,7 +210,6 @@ struct siw_cq { > u32 cq_put; > u32 cq_get; > u32 num_cqe; > - bool kernel_verbs; > struct rdma_user_mmap_entry *cq_entry; /* mmap info for CQE array */ > u32 id; /* For debugging only */ > }; > @@ -254,8 +254,8 @@ struct siw_srq { > u32 rq_get; > u32 num_rqe; /* max # of wqe's allowed */ > struct rdma_user_mmap_entry *srq_entry; /* mmap info for SRQ array */ > - char armed; /* inform user if limit hit */ > - char kernel_verbs; /* '1' if kernel client */ > + bool armed; /* inform user if limit hit */ > + bool is_kernel_res; /* true if kernel client */ > }; I changed these bools into bool bitfields, and applied to for-next Thanks, Jason