On Mon, Feb 14, 2022 at 02:40:56PM +0100, Joerg Roedel wrote: > On Mon, Feb 14, 2022 at 09:15:44AM -0400, Jason Gunthorpe wrote: > > But how does the sound device know that this has been done to it? > > > > eg how do we know the sound device hasn't been bound to VFIO or > > something at this point? > > The iommu_attach_group() call will fail when the group (which includes > GPU and sound device) it not in its default-domain. So if VFIO attached > the group to its own domain, there is a failure in this init function. That works for VFIO, but it doesn't work for other in-kernel drivers.. Is there something ensuring the group is only the GPU and sound device? Is the GPU never an addin card? I'd say the right way to code this after Lu's series to have both the GPU and sound driver call iommu_attach_device() during their probe()'s and specify the identity domain as the attaching domain. That would be quite similar to how the Tegra drivers got arranged. And then maybe someone could better guess what the "sound driver" is since it would be marked with an iommu_attach_device() call.. Jason