FROMLIST: iommu: arm-smmu-qcom: Skip fault-info reads when suspended - #1088
Conversation
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>
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4673688 on any of the following entities: Entities:
CR: 4673688 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
1 similar comment
|
Merge Check Failed: No Change Task Found No associated change tasks found for CR 4673688 on any of the following entities: Entities:
CR: 4673688 Please ensure the CR has a change task associated with at least one of the entities for this branch. |
Test Matrix
|
Shiraz Hashim (shashim-quic)
left a comment
There was a problem hiding this comment.
iommu: arm-smmu-qcom: Ensure smmu is powered up in set_ttbr0_cfg
Apply right prefix, add Link: tag
2d88b62 to
f722e51
Compare
|
Merge Check Failed: CR Not Eligible for Merge CR 4673688 is not eligible for merge. The parent software image for kernel.qli.2.0 is not development complete. Entity: Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations. |
…_cfg arm_smmu_write_context_bank() assumes it is being called with RPM active, but it turns out that is not guaranteed in the path from qcom_adreno_smmu_set_ttbr0_cfg(), so it's possible for the register writes to get lost when configuring the context bank while the GPU is idle, leading to page faults later. Add the RPM calls here to make sure the SMMU is active before we touch it. Link: https://lore.kernel.org/all/20260507-qcom_smmu_pmfix-v3-1-af8cd05831a2@gmail.com/ Signed-off-by: Anna Maniscalco <anna.maniscalco2000@gmail.com> Reviewed-by: Rob Clark <rob.clark@oss.qualcomm.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Tested-by: Xilin Wu <sophon@radxa.com> # sc8280xp-radxa-dragon-q8b
f722e51 to
17bce8d
Compare
|
Merge Check Failed: CR Not Eligible for Merge CR 4673688 is not eligible for merge. The parent software image for kernel.qli.2.0 is not development complete. Entity: Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations. |
Test Matrix
|
Mainline PR is merged, only needs to moved to Dev-complete, merging the PR. |
b6e015a
into
qualcomm-linux:qcom-6.18.y
|
Dev Completion validation failed CR: 4673688 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. |
PR #1088 — validate-patchPR: #1088
Final Summary
|
PR #1088 — checker-log-analyzerPR: #1088
Detailed report: Full report
|
LAVA Failed Case Triage SummaryPR: #1088 Job 225660 | SoC purwa-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225660 Failed test cases in LAVA job 225660 (SoC: purwa-evk).
Job 225661 | SoC lemans-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225661 Failed test cases in LAVA job 225661 (SoC: lemans-evk).
Job 225662 | SoC qcs9100-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225662 Failed test cases in LAVA job 225662 (SoC: qcs9100-ride).
Job 225663 | SoC shikra-iqs-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225663 Failed test cases in LAVA job 225663 (SoC: shikra-iqs-evk).
Job 225664 | SoC monaco-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225664 Failed test cases in LAVA job 225664 (SoC: monaco-evk).
Job 225665 | SoC qcs8300-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225665 Failed test cases in LAVA job 225665 (SoC: qcs8300-ride).
Job 225666 | SoC hamoa-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225666 Failed test cases in LAVA job 225666 (SoC: hamoa-evk).
Job 225667 | SoC qcs615-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225667 Failed test cases in LAVA job 225667 (SoC: qcs615-ride).
Job 225668 | SoC qcs6490-rb3gen2LAVA job: https://lava-oss.qualcomm.com/scheduler/job/225668 Failed test cases in LAVA job 225668 (SoC: qcs6490-rb3gen2).
|
LAVA Failed Case Triage SummaryPR: #1088 Job 225912 | SoC lemans-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225912 Failed test cases in LAVA job 225912 (SoC: lemans-evk).
Job 225913 | SoC qcs8300-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225913 Failed test cases in LAVA job 225913 (SoC: qcs8300-ride).
Job 225914 | SoC monaco-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225914 Failed test cases in LAVA job 225914 (SoC: monaco-evk).
Job 225915 | SoC qcs615-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225915 Failed test cases in LAVA job 225915 (SoC: qcs615-ride).
Job 225916 | SoC qcs9100-rideLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225916 Failed test cases in LAVA job 225916 (SoC: qcs9100-ride).
Job 225917 | SoC shikra-iqs-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225917 Failed test cases in LAVA job 225917 (SoC: shikra-iqs-evk).
Job 225918 | SoC purwa-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225918 Failed test cases in LAVA job 225918 (SoC: purwa-evk).
Job 225919 | SoC qcs6490-rb3gen2LAVA job: https://lava-oss.qualcomm.com/scheduler/job/225919 Failed test cases in LAVA job 225919 (SoC: qcs6490-rb3gen2).
Job 225920 | SoC hamoa-evkLAVA job: https://lava-oss.qualcomm.com/scheduler/job/225920 Failed test cases in LAVA job 225920 (SoC: hamoa-evk).
|
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