Skip to content

iommu: arm-smmu-qcom: Skip fault-info reads when suspended - #1814

Merged
Shiraz Hashim (shashim-quic) merged 1 commit into
qualcomm-linux:tech/mem/iommufrom
bibekpatro:priv_call_runtime_handlers
Sep 12, 2026
Merged

iommu: arm-smmu-qcom: Skip fault-info reads when suspended#1814
Shiraz Hashim (shashim-quic) merged 1 commit into
qualcomm-linux:tech/mem/iommufrom
bibekpatro:priv_call_runtime_handlers

Conversation

@bibekpatro

Copy link
Copy Markdown

qcom_adreno_smmu_get_fault_info() accesses SMMU registers without holding a runtime PM reference. A fault is raised while the SMMU is active, but the GPU may drop its power vote before the threaded fault handler reaches the callback, allowing the SMMU to runtime suspend.

Accessing the SMMU registers after suspend has started is unsafe and may cause subsequent register accesses during runtime resume to fail with a NoC error and an asynchronous SError.

Use pm_runtime_get_if_active() to keep the SMMU active while collecting the fault information, and skip the register reads if suspend has already started.

Link: https://lore.kernel.org/all/20260912-priv_call_runtime_handlers-v1-1-fc0c3a17523f@oss.qualcomm.com/

CRs-Fixed:4673688

qcom_adreno_smmu_get_fault_info() accesses SMMU registers without
holding a runtime PM reference. A fault is raised while the SMMU is
active, but the GPU may drop its power vote before the threaded fault
handler reaches the callback, allowing the SMMU to runtime suspend.

Accessing the SMMU registers after suspend has started is unsafe and
may cause subsequent register accesses during runtime resume to fail
with a NoC error and an asynchronous SError.

Use pm_runtime_get_if_active() to keep the SMMU active while collecting
the fault information, and skip the register reads if suspend has
already started.

Link: https://lore.kernel.org/all/20260912-priv_call_runtime_handlers-v1-1-fc0c3a17523f@oss.qualcomm.com/
Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4673688
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

@qcomlnxci
qcomlnxci requested review from a team and Prakash Gupta (quic-guptap) and removed request for a team September 11, 2026 22:41
@shashim-quic
Shiraz Hashim (shashim-quic) merged commit d196108 into qualcomm-linux:tech/mem/iommu Sep 12, 2026
6 of 8 checks passed
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4673688
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants