In the Linux kernel, the following vulnerability has been resolved:
iommu/arm-smmu-qcom: Add SM6115 MDSS compatible
Add the SM6115 MDSS compatible to clients compatible list, as it also needs that workaround. Without this workaround, for example, QRB4210 RB2 which is based on SM4250/SM6115 generates a lot of smmu unhandled context faults during boot:
armsmmucontext_fault: 116854 callbacks suppressed arm-smmu c600000.iommu: Unhandled context fault: fsr=0x402, iova=0x5c0ec600, fsynr=0x320021, cbfrsynra=0x420, cb=5 arm-smmu c600000.iommu: FSR = 00000402 [Format=2 TF], SID=0x420 arm-smmu c600000.iommu: FSYNR0 = 00320021 [S1CBNDX=50 PNU PLVL=1] arm-smmu c600000.iommu: Unhandled context fault: fsr=0x402, iova=0x5c0d7800, fsynr=0x320021, cbfrsynra=0x420, cb=5 arm-smmu c600000.iommu: FSR = 00000402 [Format=2 TF], SID=0x420
and also failed initialisation of lontium lt9611uxc, gpu and dpu is observed: (binding MDSS components triggered by lt9611uxc have failed)
------------[ cut here ]------------ !aspace WARNING: CPU: 6 PID: 324 at drivers/gpu/drm/msm/msmgemvma.c:130 msmgemvmainit+0x150/0x18c [msm] Modules linked in: ... (long list of modules) CPU: 6 UID: 0 PID: 324 Comm: (udev-worker) Not tainted 6.15.0-03037-gaacc73ceeb8b #4 PREEMPT Hardware name: Qualcomm Technologies, Inc. QRB4210 RB2 (DT) pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : msmgemvmainit+0x150/0x18c [msm] lr : msmgemvmainit+0x150/0x18c [msm] sp : ffff80008144b280 ... Call trace: msmgemvmainit+0x150/0x18c [msm] (P) getvmalocked+0xc0/0x194 [msm] msmgemgetandpiniovarange+0x4c/0xdc [msm] msmgemkernelnew+0x48/0x160 [msm] msmgpuinit+0x34c/0x53c [msm] adrenogpuinit+0x1b0/0x2d8 [msm] a6xxgpuinit+0x1e8/0x9e0 [msm] adrenobind+0x2b8/0x348 [msm] componentbindall+0x100/0x230 msmdrmbind+0x13c/0x3d0 [msm] trytobringupaggregatedevice+0x164/0x1d0 _componentadd+0xa4/0x174 componentadd+0x14/0x20 dsidevattach+0x20/0x34 [msm] dsihostattach+0x58/0x98 [msm] devmmipidsiattach+0x34/0x90 lt9611uxcattachdsi.isra.0+0x94/0x124 [lontiumlt9611uxc] lt9611uxcprobe+0x540/0x5fc [lontiumlt9611uxc] i2cdeviceprobe+0x148/0x2a8 reallyprobe+0xbc/0x2c0 _driverprobedevice+0x78/0x120 driverprobedevice+0x3c/0x154 _driverattach+0x90/0x1a0 busforeachdev+0x68/0xb8 driverattach+0x24/0x30 busadddriver+0xe4/0x208 driverregister+0x68/0x124 i2cregisterdriver+0x48/0xcc lt9611uxcdriverinit+0x20/0x1000 [lontiumlt9611uxc] dooneinitcall+0x60/0x1d4 doinitmodule+0x54/0x1fc loadmodule+0x1748/0x1c8c initmodulefromfile+0x74/0xa0 _arm64sysfinitmodule+0x130/0x2f8 invokesyscall+0x48/0x104 el0svccommon.constprop.0+0xc0/0xe0 doel0svc+0x1c/0x28 el0svc+0x2c/0x80 el0t64synchandler+0x10c/0x138 el0t64sync+0x198/0x19c ---[ end trace 0000000000000000 ]--- msmdpu 5e01000.display-controller: [drm:msmgpuinit [msm]] ERROR could not allocate memptrs: -22 msmdpu 5e01000.display-controller: failed to load adreno gpu platform a400000.remoteproc:glink-edge:apr:service@7:dais: Adding to iommu group 19 msmdpu 5e01000.display-controller: failed to bind 5900000.gpu (ops a3xxops [msm]): -22 msmdpu 5e01000.display-controller: adev bind failed: -22 lt9611uxc 0-002b: failed to attach dsi to host lt9611uxc 0-002b: probe with driver lt9611uxc failed with error -22