On Thu, Aug 13, 2026 at 07:46:27PM -0300, Jason Gunthorpe wrote:
> On Thu, Aug 13, 2026 at 03:29:13PM -0700, Jacob Pan wrote:
> 
> > > +static int hv_iommu_blocking_attach_dev(struct iommu_domain *domain,
> > > +                                 struct device *dev,
> > > +                                 struct iommu_domain *old)
> > > +{
> > > + struct hv_iommu_endpoint *vdev = dev_iommu_priv_get(dev);
> > > + struct hv_iommu_domain *hv_domain =
> > > to_hv_iommu_domain(domain);
> > > + struct pci_dev *pdev = to_pci_dev(dev);
> > > + int ret;
> > > +
> > > + if (pdev->ats_enabled)
> > > +         pci_disable_ats(pdev);
> > > +
> > > + if (vdev->hv_domain == hv_domain)
> > > +         return 0;
> > It may not be needed since the core code will check this. If you keep
> > this as extra precaution, should this be moved up before ats? since ats
> > must be disabled already if blocking domain is attached.

@Jacob In v2 
(https://lore.kernel.org/all/[email protected]/), 
this check was in the common attach helper. It was redundant because the normal
group domain path already skips same-domain attaches.
                                                                                
                                                                        
In this version, I removed it from the common helper and kept it only in the 
blocking attach callback. iommu_deinit_device() directly attaches the
device to release_domain without going through the group-level check.
IIUC, for a device which is alreading parked in the blocking domain, the
releasing might invoke another blocking-domain attach.
                                                                                
                                                                        
Sorry, I should have explained this change and its rationale in the changelog.

> 
> Why check it at all? Is there an issue with attaching the same thing
> twice? Will it blip the DMA or something?

Actually, I do not think there should be any issue with attaching twice.
Hyper-V *should* be able to accept such attachment. But I do not want to
make such assumption just for a redundant hypercall.

Does this reasoning make sense, or would you prefer that I remove the
check?

B.R.
Yu

> 
> Jason
> 

Reply via email to