[PATCH 0/2] iommu/vsi: Fix the runtime PM of the IOMMU
From: Arun Iyengar via B4 Relay
Date: Fri Nov 13 2026 - 18:38:26 EST
Patch 1 lets the IOMMU suspend again: a failed pm_runtime_get() in the
TLB flush leaked a usage count. Patch 2 stops the interrupt handler
from resuming the IOMMU in hard IRQ context.
Tested on RK3588S (Orange Pi 5), v7.3-based kernel that also has
hantro-robust v3 [1] and the vsi-iommu suspend patch I will send next:
without patch 1 the AV1 IOMMU stayed active after decoding. With both
it is runtime suspended with usage count 0 after AV1 fluster (203/242,
unchanged), 20 AV1 decoder unbind/bind cycles and 3 s2idle cycles. No
IOMMU fault occurred, so patch 2's handler path did not run.
No conflict with patch 10 of [1], which touches the probe.
Developed with Claude (Anthropic), which wrote the code and the commit
messages. I reviewed every change.
[1] https://lore.kernel.org/r/20261113-hantro-robust-v3-0-82383c722ad2@xxxxxxxxx
Signed-off-by: Arun Iyengar <aiyengar1990@xxxxxxxxx>
---
Arun Iyengar (2):
iommu/vsi: Don't leak a runtime PM reference in the TLB flush
iommu/vsi: Don't resume the IOMMU in its interrupt handler
drivers/iommu/vsi-iommu.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
---
base-commit: 2cf4be57b301ed2d7af82e70cff5dfd96894d8de
change-id: 20261113-vsi-iommu-pm-ref-22c83a5473be
Best regards,
--
Arun Iyengar <aiyengar1990@xxxxxxxxx>