Re: [PATCH 2/3] iommu/amd: Don't call report_iommu_fault()

Robin Murphy
2025-10-23T12:34:28Z

On 2025-10-22 6:12 pm, Jason Gunthorpe wrote:
> This old style API is only used by drivers/gpu/drm/msm and
> drivers/remoteproc, neither are used on x86 HW. Remove the dead code to
> discourage new users.

I'd be almost certain there's somebody somewhere using remoteproc on x86
with some FPGA/bespoke PCI device/on-board MCU/etc. - whether they're
doing it on AMD *and* care about its fault reporting mechanism is really
the question.
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
> drivers/iommu/amd/iommu.c | 24 ------------------------
> 1 file changed, 24 deletions(-)
>
> diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
> index 2e1865daa1cee8..072c80bb2c2b3a 100644
> --- a/drivers/iommu/amd/iommu.c
> +++ b/drivers/iommu/amd/iommu.c
> @@ -840,29 +840,6 @@ static void amd_iommu_report_page_fault(struct amd_iommu *iommu,
> dev_data = dev_iommu_priv_get(&pdev->dev);
>
> if (dev_data) {
> - /*
> - * If this is a DMA fault (for which the I(nterrupt)
> - * bit will be unset), allow report_iommu_fault() to
> - * prevent logging it.
> - */
> - if (IS_IOMMU_MEM_TRANSACTION(flags)) {
> - /* Device not attached to domain properly */
> - if (dev_data->domain == NULL) {
> - pr_err_ratelimited("Event logged [Device not attached to domain properly]\n");
> - pr_err_ratelimited(" device=%04x:%02x:%02x.%x domain=0x%04x\n",
> - iommu->pci_seg->id, PCI_BUS_NUM(devid), PCI_SLOT(devid),
> - PCI_FUNC(devid), domain_id);
> - goto out;
> - }
This part is unrelated to the report_iommu_fault() call - in fact it was
specifically added even more recently.

Thanks,
Robin.

> -
> - if (!report_iommu_fault(&dev_data->domain->domain,
> - &pdev->dev, address,
> - IS_WRITE_REQUEST(flags) ?
> - IOMMU_FAULT_WRITE :
> - IOMMU_FAULT_READ))
> - goto out;
> - }
> -
> if (__ratelimit(&dev_data->rs)) {
> pci_err(pdev, "Event logged [IO_PAGE_FAULT domain=0x%04x address=0x%llx flags=0x%04x]\n",
> domain_id, address, flags);
> @@ -873,7 +850,6 @@ static void amd_iommu_report_page_fault(struct amd_iommu *iommu,
> domain_id, address, flags);
> }
>
> -out:
> if (pdev)
> pci_dev_put(pdev);
> }