On Wed, Aug 28, 2019 at 09:01:06AM -0600, Keith Busch wrote: > On Wed, Aug 28, 2019 at 07:14:42AM -0700, Christoph Hellwig wrote: > > With a little tweak to the intel-iommu code we should be able to work > > around the VMD mess for the requester IDs without having to create giant > > amounts of boilerplate DMA ops wrapping code. The other advantage of > > this scheme is that we can respect the real DMA masks for the actual > > devices, and I bet it will only be a matter of time until we'll see the > > first DMA challeneged NVMe devices. > > This tests out fine on VMD hardware, but it's quite different than the > previous patch. In v1, the original dev was used in iommu_need_mapping(), > but this time it's the vmd device. Is this still using the actual device's > DMA mask then? True. But then again I think the old one was broken as well, as it will pass the wrong dev to identity_mapping() or iommu_request_dma_domain_for_dev. So I guess I'll need to respin it a bit to do the work in iommu_need_mapping again, and then factor that one to make it obvious what device we deal with.