On Tue, Jun 10, 2025 at 12:27:04PM +0800, Baolu Lu wrote: > On 6/10/25 02:45, Nicolin Chen wrote: > > int pcie_flr(struct pci_dev *dev) > > { > > + int ret = 0; > > + > > if (!pci_wait_for_pending_transaction(dev)) > > pci_err(dev, "timed out waiting for pending transaction; performing function level reset anyway\n"); > > + /* > > + * Per PCIe r6.3, sec 10.3.1 IMPLEMENTATION NOTE, software disables ATS > > + * before initiating a Function Level Reset. So notify the iommu driver > > + * that actually enabled ATS. Have to call it after waiting for pending > > + * DMA transaction. > > + */ > > + if (iommu_dev_reset_prepare(&dev->dev)) > > + pci_err(dev, "failed to stop IOMMU\n"); > > Need to abort here? Yea. I think it should abort. Thanks! Nicolin