Re: [PATCH 02/13] IB/core: allow passing mapping an offset into the SG in ib_map_mr_sg

Christoph Hellwig
2016-02-29T11:15:57Z

> This looks wrong...
>
> The SG offset should not be taken into account in the address
> translation vector that is given to the HW. The sg_offset needs to
> be accounted in the mr->iova:
>
> mr->iova = sg_dma_address(&sgl[0]) + sg_offset;
>
> I think the page mappings should stay as the are.

I looked at this in a bit more detail, and I think we need both.

For PAGE_SIZE or smaller SG entries you're correct, and we don't
need the offset for dma_addr. But it doesn't harm either. But
for lager SG entries we need it to calculate the correct
base address.