lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 549/757] svcrdma: fix bounce buffers for unaligned offsets and multiple pages
    Date
    From: Dan Aloni <dan@kernelim.com>

    [ Upstream commit c327a310ec4d6ecbea13185ed56c11def441d9ab ]

    This was discovered using O_DIRECT at the client side, with small
    unaligned file offsets or IOs that span multiple file pages.

    Fixes: e248aa7be86 ("svcrdma: Remove max_sge check at connect time")
    Signed-off-by: Dan Aloni <dan@kernelim.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/sunrpc/xprtrdma/svc_rdma_sendto.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
    index 7b94d971feb3b..c3d588b149aaa 100644
    --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
    +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
    @@ -638,10 +638,11 @@ static int svc_rdma_pull_up_reply_msg(struct svcxprt_rdma *rdma,
    while (remaining) {
    len = min_t(u32, PAGE_SIZE - pageoff, remaining);

    - memcpy(dst, page_address(*ppages), len);
    + memcpy(dst, page_address(*ppages) + pageoff, len);
    remaining -= len;
    dst += len;
    pageoff = 0;
    + ppages++;
    }
    }

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:18    [W:4.036 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site