On Tue, Sep 29, 2020 at 07:02:10PM +0100, Christoph Hellwig wrote: > On Tue, Sep 29, 2020 at 02:59:46PM -0300, Jason Gunthorpe wrote: > > This leaves *dma_addr set to ib_dma_mapping_error, which means the > > next try to map it will fail the if (!dma_addr) and produce a > > corrupted dma address. > > > > *dma_addr should be set to 0 here > > Maybe the code should use DMA_MAPPING_ERROR as the sentinel for a > not mapped entry? My eventual hope is to be able to send this DMA page list to the HW without having to parse and copy it like is done today. We already have it in a linear array that can be DMA'd from. However, the HW knows 0 means need-fault (the flag bits are zero), it doesn't know what to do with DMA_MAPPING_ERROR.. Jason