4.8-stable review patch.  If anyone has any objections, please let me know.

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

From: Dennis Dalessandro <[email protected]>

commit e1fafdcbe0e3e769c6a83317dd845bc99b4fe61d upstream.

The initial code for rdmavt carried with it a restriction that was a
vestige from the qib driver, that to dma map a page it had to be less
than a page size. This is not the case on modern hardware, both qib and
hfi1 will be just fine with unaligned map requests.

This fixes a 4.8 regression where by an IPoIB transfer of > PAGE_SIZE
will hang because the dma map page call always fails. This was
introduced after commit 5faba5469522 ("IB/ipoib: Report SG feature
regardless of HW UD CSUM capability") added the capability to use SG by
default. Rather than override this, the HW supports it, so allow SG.

Reviewed-by: Mike Marciniszyn <[email protected]>
Signed-off-by: Dennis Dalessandro <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/infiniband/sw/rdmavt/dma.c |    3 ---
 1 file changed, 3 deletions(-)

--- a/drivers/infiniband/sw/rdmavt/dma.c
+++ b/drivers/infiniband/sw/rdmavt/dma.c
@@ -90,9 +90,6 @@ static u64 rvt_dma_map_page(struct ib_de
        if (WARN_ON(!valid_dma_direction(direction)))
                return BAD_DMA_ADDRESS;
 
-       if (offset + size > PAGE_SIZE)
-               return BAD_DMA_ADDRESS;
-
        addr = (u64)page_address(page);
        if (addr)
                addr += offset;


Reply via email to