Re: [PATCH 4/4] nvmet-fc: Use new SGL alloc/free helper for requests

From: James Smart
Date: Thu Mar 29 2018 - 13:39:58 EST


On 3/29/2018 10:02 AM, Logan Gunthorpe wrote:
Per the bug in the previous patch, I don't think that was ever a valid
assumption. It doesn't have anything to do with the sgl_alloc change
either. The dma_map interface is allowed to merge SGLs and that's why it
can return fewer nents than it was passed. I'm not sure how many or
which DMA ops actually do this which is why it hasn't actually
manifested itself as a bug; but it is part of how the interface is
specified to work.

Argh.. yep. I'll have to correct that assumption. The bug would have only shown up on i/o sizes beyond a particular length.


I think we need to store the sg_map_cnt separately and use it instead of
the calculation based on the transfer length. But this is really a fix
that should be rolled in with the previous patch. If you can point me to
where this needs to change I can update my patch, or if you want to fix
it yourself go ahead.
I'll fix it as it's part of the assumption fix.

With the nulling/zeroing, I'm good with your patch.

-- james.