diff options
author | Radim Krčmář <rkrcmar@redhat.com> | 2016-11-16 22:07:36 +0100 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2016-11-16 22:07:36 +0100 |
commit | 813ae37e6aed72cc457094b6066aa38efd66c9e9 (patch) | |
tree | 8eb38e60d52feb2bb0cd022a434e80de53914719 /net/sunrpc/xprtrdma/svc_rdma_backchannel.c | |
parent | 6314a17fec5cab4784a5cbb75e816b15e3d22e3e (diff) | |
parent | 47bdf3378d62a627cfb8a54e1180c08d67078b61 (diff) | |
download | op-kernel-dev-813ae37e6aed72cc457094b6066aa38efd66c9e9.zip op-kernel-dev-813ae37e6aed72cc457094b6066aa38efd66c9e9.tar.gz |
Merge branch 'x86/cpufeature' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into kvm/next
Topic branch for AVX512_4VNNIW and AVX512_4FMAPS support in KVM.
Diffstat (limited to 'net/sunrpc/xprtrdma/svc_rdma_backchannel.c')
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c index 2d8545c..20027f8 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c @@ -177,18 +177,26 @@ xprt_rdma_bc_allocate(struct rpc_task *task) return -EINVAL; } + /* svc_rdma_sendto releases this page */ page = alloc_page(RPCRDMA_DEF_GFP); if (!page) return -ENOMEM; - rqst->rq_buffer = page_address(page); + + rqst->rq_rbuffer = kmalloc(rqst->rq_rcvsize, RPCRDMA_DEF_GFP); + if (!rqst->rq_rbuffer) { + put_page(page); + return -ENOMEM; + } return 0; } static void xprt_rdma_bc_free(struct rpc_task *task) { - /* No-op: ctxt and page have already been freed. */ + struct rpc_rqst *rqst = task->tk_rqstp; + + kfree(rqst->rq_rbuffer); } static int |