Re: [PATCH] iommu/arm-smmu: Use pm_runtime in fault handlers
From: Prakash Gupta
Date: Tue Feb 10 2026 - 06:10:11 EST
On 2/3/2026 1:44 AM, Pranjal Shrivastava wrote:
> On Wed, Jan 28, 2026 at 06:44:35PM +0000, Robin Murphy wrote:
>> [ +Pranjal as this might matter for v3 too... ]
>>
>
> Hi Robin,
>
> To weigh in from the arm-smmu-v3 side, we’ve attempted to address the
> "can of worms" regarding power races by leaning on these differences:
>
> - Threaded IRQs for PRI/Events: In the recent series[1], the PRI and
> event handlers are fully threaded. This allows us to call
> arm_smmu_rpm_get() safely, as the handler can sleep while waiting for
> the hardware to resume.
>
> - GERROR Handling: Since GERROR remains a hard IRQ, we handle any
> pending gerrors in the suspend callback before the SMMU actually
> powers down. Any GERROR interrupts received while the device was
> suspended are treated as spurious and ignored.
>
> Thanks,
> Praan
[1] refer to case where SMMU state is not retained during smmu device
power down, this I think is equally applicable for both context and
global faults.
Since the ARM SMMU runtime resume triggers a device reset, any pending
faults would be cleared during resume. Here the solution can be to
handle both global and context faults before allowing the SMMU device to
suspend.
With this approach, any hard or threaded IRQ scheduled after the SMMU
device has suspended can be safely ignored.
One concern I see is iommu fault reporting to clients while handling
fault during smmu device suspend.
Thanks,
Prakash
[1] https://lore.kernel.org/all/20260126151157.3418145-9-praan@xxxxxxxxxx/