Re: [PATCH RFC v1 2/2] pci: Suspend ATS before doing FLR
From: Nicolin Chen
Date: Tue Jun 10 2025 - 02:56:16 EST
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