Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 830bb59b authored by Tom Tucker's avatar Tom Tucker Committed by J. Bruce Fields
Browse files

SVCRDMA: Add check for XPT_CLOSE in svc_rdma_send



SVCRDMA: Add check for XPT_CLOSE in svc_rdma_send

The svcrdma transport can crash if a send is waiting for an
empty SQ slot and the connection is closed due to an asynchronous error.
The crash is caused when svc_rdma_send attempts to send on a deleted
QP.

Signed-off-by: default avatarTom Tucker <tom@opengridcomputing.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent 9167f501
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1036,6 +1036,8 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
			wait_event(xprt->sc_send_wait,
				   atomic_read(&xprt->sc_sq_count) <
				   xprt->sc_sq_depth);
			if (test_bit(XPT_CLOSE, &xprt->sc_xprt.xpt_flags))
				return 0;
			continue;
		}
		/* Bumped used SQ WR count and post */