On Tue, 13 Dec 2022 at 19:37, Sibi Sankar <quic_sibis@xxxxxxxxxxx> wrote: > > The memory region allocated using dma_alloc_attr with no kernel mapping > attribute set would still be a part of the linear kernel map. Any access > to this region by the application processor after assigning it to the > remote Q6 will result in a XPU violation. Fix this by replacing the > dynamically allocated memory region with a no-map carveout and unmap the > modem metadata memory region before passing control to the remote Q6. > The addition of the carveout and memunmap is required only on SoCs that > mandate memory protection before transferring control to Q6, hence the > driver falls back to dynamic memory allocation in the absence of the > modem metadata carveout. > > Relevant discussions on the mailing list: > https://lore.kernel.org/lkml/20221114110329.68413-1-manivannan.sadhasivam@xxxxxxxxxx/ > > Depends on: > https://patchwork.kernel.org/project/linux-arm-msm/cover/20221124184333.133911-1-krzysztof.kozlowski@xxxxxxxxxx/ > > Reported-by: Amit Pundir <amit.pundir@xxxxxxxxxx> Smoke tested this series on db845c (SDM845) running v6.2-rc1, with the upstream workaround (b7d9aae40484 Revert "arm64: dma: Drop cache invalidation from arch_dma_prep_coherent()") reverted and I can no longer reproduce the above crash in my limited (10+) test runs so far. So for the entire series: Tested-by: Amit Pundir <amit.pundir@xxxxxxxxxx> Regards, Amit Pundir > https://people.linaro.org/~amit.pundir/linaro-sid-developer-dragonboard-845c-569/6.1-rc4_defconfig > Reproduced with ^^ defconfig SDM845 SoCs > > Sibi Sankar (4): > arm64: dts: qcom: Introduce a carveout for modem metadata > dt-bindings: remoteproc: qcom: sc7180: Update memory-region > requirements > dt-bindings: remoteproc: qcom: q6v5: Update memory region requirements > remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem > headers > > .../bindings/remoteproc/qcom,q6v5.txt | 29 ++++++- > .../remoteproc/qcom,sc7180-mss-pil.yaml | 3 +- > .../remoteproc/qcom,sc7280-mss-pil.yaml | 3 +- > .../boot/dts/qcom/msm8996-xiaomi-common.dtsi | 6 ++ > arch/arm64/boot/dts/qcom/msm8996.dtsi | 9 ++ > arch/arm64/boot/dts/qcom/msm8998.dtsi | 9 ++ > arch/arm64/boot/dts/qcom/sc7180-idp.dts | 7 +- > arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 7 +- > .../dts/qcom/sc7280-herobrine-lte-sku.dtsi | 7 +- > arch/arm64/boot/dts/qcom/sdm845.dtsi | 9 ++ > drivers/remoteproc/qcom_q6v5_mss.c | 85 +++++++++++++------ > 11 files changed, 142 insertions(+), 32 deletions(-) > > -- > 2.17.1 >