On Mon, Oct 28, 2024 at 08:37:40AM +0200, Leon Romanovsky wrote: > In this specific case, the physical address is used to calculate > IOVA offset, see "size_t iova_off = iova_offset(iovad, phys);" line, > which is needed for NVMe PCI/block layer, as they can have first > address to be unaligned and IOVA allocation will need an offset to > properly calculate size. And that is also very explicitly spelled out in the kerneldoc comments, including the note that the physical address is optional if the transfer is granule aligned (actually it says PAGE_SIZE which should be fixed). Any suggestions to further improve it are welcome of course.