From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 20:03:20 +0000 (-0800) Subject: 5.15-stable patches X-Git-Tag: v4.19.306~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f9975572112b42029bbfa965cc5da636fb947df;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: iommu-arm-smmu-qcom-add-missing-gmu-entry-to-match-table.patch --- diff --git a/queue-5.15/iommu-arm-smmu-qcom-add-missing-gmu-entry-to-match-table.patch b/queue-5.15/iommu-arm-smmu-qcom-add-missing-gmu-entry-to-match-table.patch new file mode 100644 index 00000000000..962fc23c80a --- /dev/null +++ b/queue-5.15/iommu-arm-smmu-qcom-add-missing-gmu-entry-to-match-table.patch @@ -0,0 +1,40 @@ +From afc95681c3068956fed1241a1ff1612c066c75ac Mon Sep 17 00:00:00 2001 +From: Rob Clark +Date: Sun, 10 Dec 2023 10:06:53 -0800 +Subject: iommu/arm-smmu-qcom: Add missing GMU entry to match table + +From: Rob Clark + +commit afc95681c3068956fed1241a1ff1612c066c75ac upstream. + +In some cases the firmware expects cbndx 1 to be assigned to the GMU, +so we also want the default domain for the GMU to be an identy domain. +This way it does not get a context bank assigned. Without this, both +of_dma_configure() and drm/msm's iommu_domain_attach() will trigger +allocating and configuring a context bank. So GMU ends up attached to +both cbndx 1 and later cbndx 2. This arrangement seemingly confounds +and surprises the firmware if the GPU later triggers a translation +fault, resulting (on sc8280xp / lenovo x13s, at least) in the SMMU +getting wedged and the GPU stuck without memory access. + +Cc: stable@vger.kernel.org +Signed-off-by: Rob Clark +Tested-by: Johan Hovold +Reviewed-by: Robin Murphy +Link: https://lore.kernel.org/r/20231210180655.75542-1-robdclark@gmail.com +Signed-off-by: Will Deacon +Signed-off-by: Greg Kroah-Hartman +--- + drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c ++++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +@@ -226,6 +226,7 @@ static int qcom_adreno_smmu_init_context + + static const struct of_device_id qcom_smmu_client_of_match[] __maybe_unused = { + { .compatible = "qcom,adreno" }, ++ { .compatible = "qcom,adreno-gmu" }, + { .compatible = "qcom,mdp4" }, + { .compatible = "qcom,mdss" }, + { .compatible = "qcom,sc7180-mdss" }, diff --git a/queue-5.15/series b/queue-5.15/series index d0fbe35724f..17e6e0b3c1b 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -273,3 +273,4 @@ io_uring-rw-ensure-io-bytes_done-is-always-initialized.patch rootfs-fix-support-for-rootfstype-when-root-is-given.patch bluetooth-fix-atomicity-violation-in-min-max-_key_size_set.patch bpf-fix-re-attachment-branch-in-bpf_tracing_prog_attach.patch +iommu-arm-smmu-qcom-add-missing-gmu-entry-to-match-table.patch