linux_dsm_epyc7002/net/sunrpc
Chuck Lever 426b8fb3d6 svcrdma: Hold private mutex while invoking rdma_accept()
[ Upstream commit 0ac24c320c4d89a9de6ec802591398b8675c7b3c ]

RDMA core mutex locking was restructured by commit d114c6feed
("RDMA/cma: Add missing locking to rdma_accept()") [Aug 2020]. When
lock debugging is enabled, the RPC/RDMA server trips over the new
lockdep assertion in rdma_accept() because it doesn't call
rdma_accept() from its CM event handler.

As a temporary fix, have svc_rdma_accept() take the handler_mutex
explicitly. In the meantime, let's consider how to restructure the
RPC/RDMA transport to invoke rdma_accept() from the proper context.

Calls to svc_rdma_accept() are serialized with calls to
svc_rdma_free() by the generic RPC server layer.

Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/linux-rdma/20210209154014.GO4247@nvidia.com/
Fixes: d114c6feed ("RDMA/cma: Add missing locking to rdma_accept()")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-04 11:38:08 +01:00
..
auth_gss SUNRPC: Handle 0 length opaque XDR object data properly 2021-02-13 13:55:12 +01:00
xprtrdma svcrdma: Hold private mutex while invoking rdma_accept() 2021-03-04 11:38:08 +01:00
addr.c net: sunrpc: interpret the return value of kstrtou32 correctly 2021-01-19 18:27:33 +01:00
auth_null.c
auth_unix.c
auth.c
backchannel_rqst.c
cache.c
clnt.c
debugfs.c net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' 2020-12-30 11:53:30 +01:00
Kconfig
Makefile
netns.h
rpc_pipe.c
rpcb_clnt.c
sched.c SUNRPC: rpc_wake_up() should wake up tasks in the correct order 2020-12-30 11:53:30 +01:00
socklib.c
socklib.h
stats.c
sunrpc_syms.c
sunrpc.h
svc_xprt.c
svc.c
svcauth_unix.c
svcauth.c
svcsock.c SUNRPC: Fix NFS READs that start at non-page-aligned offsets 2021-02-10 09:29:13 +01:00
sysctl.c
timer.c
xdr.c
xprt.c SUNRPC: xprt_load_transport() needs to support the netid "rdma6" 2020-12-30 11:53:30 +01:00
xprtmultipath.c
xprtsock.c sunrpc: fix xs_read_xdr_buf for partial pages receive 2020-12-30 11:53:53 +01:00