kernel_optimize_test/net/sunrpc
Chuck Lever 35f71f3cbd xprtrdma: Fix XDRBUF_SPARSE_PAGES support
commit 15261b9126cd5bb2ad8521da49d8f5c042d904c7 upstream.

Olga K. observed that rpcrdma_marsh_req() allocates sparse pages
only when it has determined that a Reply chunk is necessary. There
are plenty of cases where no Reply chunk is needed, but the
XDRBUF_SPARSE_PAGES flag is set. The result would be a crash in
rpcrdma_inline_fixup() when it tries to copy parts of the received
Reply into a missing page.

To avoid crashing, handle sparse page allocation up front.

Until XATTR support was added, this issue did not appear often
because the only SPARSE_PAGES consumer always expected a reply large
enough to always require a Reply chunk.

Reported-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-12-30 11:54:15 +01:00
..
auth_gss The one new feature this time, from Anna Schumaker, is READ_PLUS, which 2020-10-22 09:44:27 -07:00
xprtrdma xprtrdma: Fix XDRBUF_SPARSE_PAGES support 2020-12-30 11:54:15 +01:00
addr.c
auth_null.c
auth_unix.c
auth.c
backchannel_rqst.c The one new feature this time, from Anna Schumaker, is READ_PLUS, which 2020-10-22 09:44:27 -07:00
cache.c sunrpc: raise kernel RPC channel buffer size 2020-10-20 13:21:30 -04:00
clnt.c SUNRPC: Clean up call_bind_status() observability 2020-09-21 10:21:09 -04:00
debugfs.c net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' 2020-12-30 11:53:30 +01:00
Kconfig SUNRPC: remove RC4-HMAC-MD5 support from KerberosV 2020-09-11 14:39:15 +10:00
Makefile
netns.h
rpc_pipe.c
rpcb_clnt.c SUNRPC: Replace rpcbind dprintk call sites with tracepoints 2020-09-21 10:21:09 -04:00
sched.c SUNRPC: rpc_wake_up() should wake up tasks in the correct order 2020-12-30 11:53:30 +01:00
socklib.c skb_copy_and_csum_bits(): don't bother with the last argument 2020-08-20 15:45:13 -04:00
socklib.h
stats.c
sunrpc_syms.c
sunrpc.h Replace HTTP links with HTTPS ones: NFS, SUNRPC, and LOCKD clients 2020-09-21 10:21:10 -04:00
svc_xprt.c
svc.c
svcauth_unix.c
svcauth.c
svcsock.c SUNRPC: Fix svc_flush_dcache() 2020-09-21 10:13:25 -04:00
sysctl.c net/sunrpc: fix useless comparison in proc_do_xprt() 2020-11-08 16:28:25 -05:00
timer.c
xdr.c The one new feature this time, from Anna Schumaker, is READ_PLUS, which 2020-10-22 09:44:27 -07:00
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