IB core: Fix ib_sg_to_pages()
authorBart Van Assche <bart.vanassche@sandisk.com>
Fri, 4 Dec 2015 00:04:17 +0000 (16:04 -0800)
committerDoug Ledford <dledford@redhat.com>
Mon, 7 Dec 2015 22:20:12 +0000 (17:20 -0500)
commit8f5ba10ed40a9d3ffe84854984227d011a7428bd
tree9e4ade6a8e77033be296bf51b36af8ec7fd3cc38
parent57b0be9c0fb0ba3a35683c6ce21db7162d6758c5
IB core: Fix ib_sg_to_pages()

On 12/03/2015 01:18 AM, Christoph Hellwig wrote:
> The patch looks good to me, but while we touch this area, how about
> throwing in a few cosmetic fixes as well?

How about the patch below ? In that version of the ib_sg_to_pages() fix
these concerns have been addressed and additionally to more bugs have been fixed.

------------

[PATCH] IB core: Fix ib_sg_to_pages()

Fix the code for detecting gaps. A gap occurs not only if the
second or later scatterlist element is not aligned but also if
any scatterlist element other than the last does not end at a
page boundary.

In the code for coalescing contiguous elements, ensure that
mr->length is correct and that last_page_addr is up-to-date.

Ensure that this function returns a negative
error code instead of zero if the first set_page() call fails.

Fixes: commit 4c67e2bfc8b7 ("IB/core: Introduce new fast registration API")
Reported-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/verbs.c