diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2017-02-07 11:59:04 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2017-02-08 14:42:01 -0500 |
commit | 81fa3275f95ac357188fe3ca81b8e7c75360c88d (patch) | |
tree | e3a0dd5a4b45b9b587c032979047ae38b8d770d4 /net/sunrpc/cache.c | |
parent | a3ab867fa64f9aedb3b01d570db5b43d2fc355fc (diff) |
svcrdma: Poll CQs in "workqueue" mode
svcrdma calls svc_xprt_put() in its completion handlers, which
currently run in IRQ context.
However, svc_xprt_put() is meant to be invoked in process context,
not in IRQ context. After the last transport reference is gone, it
directly calls a transport release function that expects to run in
process context.
Change the CQ polling modes to IB_POLL_WORKQUEUE so that svcrdma
invokes svc_xprt_put() only in process context. As an added benefit,
bottom half-disabled spin locking can be eliminated from I/O paths.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc/cache.c')
0 files changed, 0 insertions, 0 deletions