IB/umem: Fix use of npages/nmap fields
authorArtemy Kovalyov <artemyko@mellanox.com>
Tue, 14 Nov 2017 12:51:59 +0000 (14:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Mar 2018 10:01:25 +0000 (11:01 +0100)
[ Upstream commit edf1a84fe37c51290e2c88154ecaf48dadff3d27 ]

In ib_umem structure npages holds original number of sg entries, while
nmap is number of DMA blocks returned by dma_map_sg.

Fixes: c5d76f130b28 ('IB/core: Add umem function to read data from user-space')
Signed-off-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/infiniband/core/umem.c

index 130606c3b07c15f03e5481b1cf22831a7c9a8e85..9a4e899d94b30a843e54f3a06e975ad632428a26 100644 (file)
@@ -352,7 +352,7 @@ int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
                return -EINVAL;
        }
 
-       ret = sg_pcopy_to_buffer(umem->sg_head.sgl, umem->nmap, dst, length,
+       ret = sg_pcopy_to_buffer(umem->sg_head.sgl, umem->npages, dst, length,
                                 offset + ib_umem_offset(umem));
 
        if (ret < 0)