In the cases where the error affects the transaction being processed but otherwise allows the IOMMU to continue providing service, the IOMMU may abort (see Aborting transactions) the transaction and report the the fault by queuing a fault record in the FQ. For PCIe, for example, a "Completer Abort (CA)" response is appropriate to abort the transaction. The following cause codes are used to report such faulting transactions:
DDT data corruption (cause = 268)
PDT data corruption (cause = 269)
MSI PT data corruption (cause = 270)
MSI MRIF data corruption (cause = 271)
Internal data-path error (cause = 272)
First/second-stage PT data corruption (cause = 274)
https://github.com/riscv-non-isa/riscv-iommu/blob/main/iommu_hw_guidelines.adoc#reliability-availability-and-serviceability-ras
Why not add data corruption fault at here ? https://github.com/riscv-non-isa/riscv-iommu/blob/main/iommu_ref_model/libiommu/src/iommu_translate.c#L501