> On Jan 23, 2019, at 11:02 PM, Nicolas Morey-Chaisemartin <nmoreychaisemartin@xxxxxxxx> wrote: > > Make sure the device has at least 2 completion vectors before allocating to compvec#1 > > Fixes: a4699f5647f3 (xprtrdma: Put Send CQ in IB_POLL_WORKQUEUE mode) > Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@xxxxxxxx> > --- > Fixes since v1: > - Use num_comp_vector instead online_cpus > > net/sunrpc/xprtrdma/verbs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c > index b725911c0f3f..db913bcef984 100644 > --- a/net/sunrpc/xprtrdma/verbs.c > +++ b/net/sunrpc/xprtrdma/verbs.c > @@ -546,7 +546,7 @@ rpcrdma_ep_create(struct rpcrdma_ep *ep, struct rpcrdma_ia *ia, > > sendcq = ib_alloc_cq(ia->ri_device, NULL, > ep->rep_attr.cap.max_send_wr + 1, > - 1, IB_POLL_WORKQUEUE); > + ia->ri_device->num_comp_vectors > 1 ? 1 : 0, IB_POLL_WORKQUEUE); Nit: You should split this line. Otherwise: Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx> And I'll look into smarter compvec allocation again. > if (IS_ERR(sendcq)) { > rc = PTR_ERR(sendcq); > dprintk("RPC: %s: failed to create send CQ: %i\n", > -- > 2.18.0 > -- Chuck Lever