preserve DMA offsets when using swiotlb

Christoph Hellwig
2021-02-04T19:30:53Z

Hi all,

this series make NVMe happy when running with swiotlb. This caters
towards to completely broken NVMe controllers that ignore the
specification (hello to the biggest cloud provider on the planet!),
to crappy SOC that have addressing limitations, or "secure"
virtualization that force bounce buffering to enhance the user
experience. Or in other words, no one sane should hit it, but
people do.

It is basically a respin of the

"SWIOTLB: Preserve swiotlb map offset when needed."

series from Jianxiong Gao. It complete rewrites the swiotlb part so that
the offset really is preserved and not just the offset into the swiotlb
slot, and to do so it grew half a dozen patches to refactor the swiotlb
so that a mere mortal like me could actually understand it.