On Thu, Jul 29, 2021 at 02:26:22PM -0400, mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx wrote: > From: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx> > > The net/sunrpc/xprtrdma module creates its QP using rdma_create_qp() and > immediately post receives, implicitly assuming the QP is in the INIT > state and thus valid for ib_post_recv(). > > The patch noted in Fixes: removed the RESET->INIT modifiy from > rdma_create_qp(), breaking NFS rdma for verbs providers that fail the > ib_post_recv() for a bad state. > > This situation was proven using kprobes in rvt_post_recv() and > rvt_modify_qp(). The traces showed that the rvt_post_recv() failed before > ANY modify QP and that the current state was RESET. > > Fix by reverting the patch below. > > Fixes: dc70f7c3ed34 ("RDMA/cma: Remove unnecessary INIT->INIT transition") > Cc: Haakon Bugge <haakon.bugge@xxxxxxxxxx> > Cc: Chuck Lever III <chuck.lever@xxxxxxxxxx> > Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx> > --- > drivers/infiniband/core/cma.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) Applied to for-rc, thanks Jason