* [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map
@ 2026-10-15 7:15 Jianping Li
2026-10-15 7:15 ` [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map Jianping Li
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Jianping Li @ 2026-10-15 7:15 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Jianping Li, Abel Vesa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Ekansh Gupta, Vinayak Katoch, Alexey Klimov,
linux-arm-msm, devicetree, linux-kernel, quic_chennak
Several Qualcomm platforms declare the ADSP remote heap as a reusable
shared DMA pool. This allows the kernel to reuse the region for movable
allocations.
When FastRPC assigns the entire region to the DSP without first
allocating its pages from CMA, those pages remain available for HLOS
allocations despite HLOS access permissions having been revoked.
Subsequent kernel accesses can therefore cause synchronous external
aborts.
This issue has been reported on Talos during GPU stress testing and on
Kodiak during storage testing. A further report on a Kodiak-based
Motorola Edge 30 describes similar aborts during everyday use and
indicates that marking the heap no-map resolves the issue.
Following feedback on the Talos patch, this series updates the remaining
identified reusable ADSP remote heaps on Kodiak, Glymur, SM8250 and
SM8750. Each platform is handled in a separate patch to allow independent
review and backporting.
Replace reusable with no-map to prevent normal kernel allocations from
using these regions and exclude them from the kernel's standard memory
mapping. The existing allocation ranges, alignment and sizes are
unchanged.
The Talos fix was submitted separately [1]. Agatti is also excluded
because a separate fix has already been posted [2].
[1] https://lore.kernel.org/all/20261014083820.468-1-jianping.li@oss.qualcomm.com/
[2] https://lore.kernel.org/all/20261001085247.1897991-1-benjamin@wendy.sh/
Jianping Li (4):
arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map
arm64: dts: qcom: glymur: Make the ADSP remote heap no-map
arm64: dts: qcom: sm8250: Make the ADSP remote heap no-map
arm64: dts: qcom: sm8750: Make the ADSP remote heap no-map
arch/arm64/boot/dts/qcom/glymur.dtsi | 2 +-
arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8750.dtsi | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map
2026-10-15 7:15 [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map Jianping Li
@ 2026-10-15 7:15 ` Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 2/4] arm64: dts: qcom: glymur: " Jianping Li
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Jianping Li @ 2026-10-15 7:15 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Jianping Li, Abel Vesa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Ekansh Gupta, Vinayak Katoch, Alexey Klimov,
linux-arm-msm, devicetree, linux-kernel, quic_chennak
The ADSP remote heap is declared as a reusable CMA pool. FastRPC
assigns the entire region to the DSP through qcom_scm_assign_mem()
during probe without allocating the pages from CMA. Consequently,
the pages remain available for movable HLOS allocations even after
HLOS access to the region has been revoked.
On Kodiak, a synchronous external abort was reported during storage
testing when the kernel accessed memory within the ADSP remote heap.
The faulting address was outside the HLOS stage-2 mapping.
Replace reusable with no-map to prevent the region from being reused
for normal kernel allocations and exclude it from the kernel's
standard memory mapping.
Fixes: 9d7d847ff1c50 ("arm64: dts: qcom: kodiak: avoid EFI overlap for ADSP remote heap")
Link: https://lore.kernel.org/all/20260423063502.484-1-jianping.li@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 8c7523602d27..057d7e62b2dd 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -194,7 +194,7 @@ rmtfs_mem: rmtfs@9c900000 {
adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
compatible = "shared-dma-pool";
alloc-ranges = <0x0 0x80000000 0x0 0x80000000>;
- reusable;
+ no-map;
alignment = <0x0 0x400000>;
size = <0x0 0x800000>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 2/4] arm64: dts: qcom: glymur: Make the ADSP remote heap no-map
2026-10-15 7:15 [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map Jianping Li
2026-10-15 7:15 ` [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map Jianping Li
@ 2026-10-15 7:15 ` Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 3/4] arm64: dts: qcom: sm8250: " Jianping Li
2026-10-15 7:15 ` [PATCH v1 4/4] arm64: dts: qcom: sm8750: " Jianping Li
3 siblings, 1 reply; 9+ messages in thread
From: Jianping Li @ 2026-10-15 7:15 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Jianping Li, Abel Vesa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Ekansh Gupta, Vinayak Katoch, Alexey Klimov,
linux-arm-msm, devicetree, linux-kernel, quic_chennak
The ADSP remote heap is declared as a reusable shared DMA pool.
Allowing the kernel to reuse this region is incompatible with handing
the entire region over to the DSP, as HLOS allocations may then access
memory for which HLOS no longer has access permissions.
The same configuration has caused synchronous external aborts on
other platforms when the kernel accesses pages within the ADSP remote
heap.
Replace reusable with no-map to keep the region reserved for the DSP
and exclude it from the kernel's standard memory mapping.
Fixes: 67641246eabd0 ("arm64: dts: qcom: glymur: Add memory-region for audio PD")
Link: https://lore.kernel.org/all/20260701-glymur-audio-v1-1-2c3862d95a09@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/glymur.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 65a398c0a992..4b7907cf9c82 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -690,7 +690,7 @@ smem_mem: smem@ffe00000 {
adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
compatible = "shared-dma-pool";
alloc-ranges = <0x0 0x80000000 0x0 0x80000000>;
- reusable;
+ no-map;
alignment = <0x0 0x400000>;
size = <0x0 0x800000>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 3/4] arm64: dts: qcom: sm8250: Make the ADSP remote heap no-map
2026-10-15 7:15 [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map Jianping Li
2026-10-15 7:15 ` [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map Jianping Li
2026-10-15 7:15 ` [PATCH v1 2/4] arm64: dts: qcom: glymur: " Jianping Li
@ 2026-10-15 7:15 ` Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 4/4] arm64: dts: qcom: sm8750: " Jianping Li
3 siblings, 1 reply; 9+ messages in thread
From: Jianping Li @ 2026-10-15 7:15 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Jianping Li, Abel Vesa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Ekansh Gupta, Vinayak Katoch, Alexey Klimov,
linux-arm-msm, devicetree, linux-kernel, quic_chennak
The ADSP remote heap is declared as a reusable CMA pool. FastRPC
assigns the entire region to the DSP during probe without allocating
the pages from CMA. This allows movable HLOS allocations to use pages
within the region after HLOS access permissions have been revoked,
potentially causing synchronous external aborts.
Replace reusable with no-map to prevent the region from being reused
for normal kernel allocations and exclude it from the kernel's
standard memory mapping.
Fixes: 531ce288b6dd4 ("arm64: dts: qcom: sm8250: Add memory-region for audio PD")
Link: https://lore.kernel.org/all/20260619-sm8250-audio-v1-1-8a76e033e209@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index f975c2183269..f415da478c99 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -867,7 +867,7 @@ cdsp_secure_heap: memory@8bf00000 {
adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
compatible = "shared-dma-pool";
alloc-ranges = <0x0 0x80000000 0x0 0x80000000>;
- reusable;
+ no-map;
alignment = <0x0 0x400000>;
size = <0x0 0x800000>;
};
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v1 4/4] arm64: dts: qcom: sm8750: Make the ADSP remote heap no-map
2026-10-15 7:15 [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map Jianping Li
` (2 preceding siblings ...)
2026-10-15 7:15 ` [PATCH v1 3/4] arm64: dts: qcom: sm8250: " Jianping Li
@ 2026-10-15 7:15 ` Jianping Li
2026-10-15 8:01 ` Konrad Dybcio
3 siblings, 1 reply; 9+ messages in thread
From: Jianping Li @ 2026-10-15 7:15 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Jianping Li, Abel Vesa, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Ekansh Gupta, Vinayak Katoch, Alexey Klimov,
linux-arm-msm, devicetree, linux-kernel, quic_chennak
The ADSP remote heap is declared as a reusable shared DMA pool.
Allowing the kernel to reuse this region is incompatible with handing
the entire region over to the DSP, as HLOS allocations may access
pages for which HLOS no longer has access permissions.
The same configuration has caused synchronous external aborts on
other platforms when the kernel accesses pages within the ADSP remote
heap.
Replace reusable with no-map to keep the region reserved for the DSP
and exclude it from the kernel's standard memory mapping.
Fixes: 0bcf9ca23a873 ("arm64: dts: qcom: sm8750: add memory node for adsp fastrpc")
Link: https://lore.kernel.org/all/20251209-sm8750-fastrpc-adsp-v3-1-ccfff49a8af9@linaro.org/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8750.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index cf947acc5760..0d493359408b 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -561,7 +561,7 @@ adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
alignment = <0x0 0x400000>;
size = <0x0 0xc00000>;
- reusable;
+ no-map;
};
};
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map
2026-10-15 7:15 ` [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map Jianping Li
@ 2026-10-15 8:00 ` Konrad Dybcio
0 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-15 8:00 UTC (permalink / raw)
To: Jianping Li, Bjorn Andersson, Konrad Dybcio
Cc: Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Ekansh Gupta, Vinayak Katoch, Alexey Klimov, linux-arm-msm,
devicetree, linux-kernel, quic_chennak
On 10/15/26 9:15 AM, Jianping Li wrote:
> The ADSP remote heap is declared as a reusable CMA pool. FastRPC
> assigns the entire region to the DSP through qcom_scm_assign_mem()
> during probe without allocating the pages from CMA. Consequently,
> the pages remain available for movable HLOS allocations even after
> HLOS access to the region has been revoked.
>
> On Kodiak, a synchronous external abort was reported during storage
> testing when the kernel accessed memory within the ADSP remote heap.
> The faulting address was outside the HLOS stage-2 mapping.
>
> Replace reusable with no-map to prevent the region from being reused
> for normal kernel allocations and exclude it from the kernel's
> standard memory mapping.
>
> Fixes: 9d7d847ff1c50 ("arm64: dts: qcom: kodiak: avoid EFI overlap for ADSP remote heap")
> Link: https://lore.kernel.org/all/20260423063502.484-1-jianping.li@oss.qualcomm.com/
> Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v1 2/4] arm64: dts: qcom: glymur: Make the ADSP remote heap no-map
2026-10-15 7:15 ` [PATCH v1 2/4] arm64: dts: qcom: glymur: " Jianping Li
@ 2026-10-15 8:00 ` Konrad Dybcio
0 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-15 8:00 UTC (permalink / raw)
To: Jianping Li, Bjorn Andersson, Konrad Dybcio
Cc: Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Ekansh Gupta, Vinayak Katoch, Alexey Klimov, linux-arm-msm,
devicetree, linux-kernel, quic_chennak
On 10/15/26 9:15 AM, Jianping Li wrote:
> The ADSP remote heap is declared as a reusable shared DMA pool.
> Allowing the kernel to reuse this region is incompatible with handing
> the entire region over to the DSP, as HLOS allocations may then access
> memory for which HLOS no longer has access permissions.
>
> The same configuration has caused synchronous external aborts on
> other platforms when the kernel accesses pages within the ADSP remote
> heap.
>
> Replace reusable with no-map to keep the region reserved for the DSP
> and exclude it from the kernel's standard memory mapping.
>
> Fixes: 67641246eabd0 ("arm64: dts: qcom: glymur: Add memory-region for audio PD")
> Link: https://lore.kernel.org/all/20260701-glymur-audio-v1-1-2c3862d95a09@oss.qualcomm.com/
> Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v1 3/4] arm64: dts: qcom: sm8250: Make the ADSP remote heap no-map
2026-10-15 7:15 ` [PATCH v1 3/4] arm64: dts: qcom: sm8250: " Jianping Li
@ 2026-10-15 8:00 ` Konrad Dybcio
0 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-15 8:00 UTC (permalink / raw)
To: Jianping Li, Bjorn Andersson, Konrad Dybcio
Cc: Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Ekansh Gupta, Vinayak Katoch, Alexey Klimov, linux-arm-msm,
devicetree, linux-kernel, quic_chennak
On 10/15/26 9:15 AM, Jianping Li wrote:
> The ADSP remote heap is declared as a reusable CMA pool. FastRPC
> assigns the entire region to the DSP during probe without allocating
> the pages from CMA. This allows movable HLOS allocations to use pages
> within the region after HLOS access permissions have been revoked,
> potentially causing synchronous external aborts.
>
> Replace reusable with no-map to prevent the region from being reused
> for normal kernel allocations and exclude it from the kernel's
> standard memory mapping.
>
> Fixes: 531ce288b6dd4 ("arm64: dts: qcom: sm8250: Add memory-region for audio PD")
> Link: https://lore.kernel.org/all/20260619-sm8250-audio-v1-1-8a76e033e209@oss.qualcomm.com/
> Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v1 4/4] arm64: dts: qcom: sm8750: Make the ADSP remote heap no-map
2026-10-15 7:15 ` [PATCH v1 4/4] arm64: dts: qcom: sm8750: " Jianping Li
@ 2026-10-15 8:01 ` Konrad Dybcio
0 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-10-15 8:01 UTC (permalink / raw)
To: Jianping Li, Bjorn Andersson, Konrad Dybcio
Cc: Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Ekansh Gupta, Vinayak Katoch, Alexey Klimov, linux-arm-msm,
devicetree, linux-kernel, quic_chennak
On 10/15/26 9:15 AM, Jianping Li wrote:
> The ADSP remote heap is declared as a reusable shared DMA pool.
> Allowing the kernel to reuse this region is incompatible with handing
> the entire region over to the DSP, as HLOS allocations may access
> pages for which HLOS no longer has access permissions.
>
> The same configuration has caused synchronous external aborts on
> other platforms when the kernel accesses pages within the ADSP remote
> heap.
>
> Replace reusable with no-map to keep the region reserved for the DSP
> and exclude it from the kernel's standard memory mapping.
>
> Fixes: 0bcf9ca23a873 ("arm64: dts: qcom: sm8750: add memory node for adsp fastrpc")
> Link: https://lore.kernel.org/all/20251209-sm8750-fastrpc-adsp-v3-1-ccfff49a8af9@linaro.org/
> Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-10-15 8:01 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-15 7:15 [PATCH v1 0/4] arm64: dts: qcom: Make ADSP remote heaps no-map Jianping Li
2026-10-15 7:15 ` [PATCH v1 1/4] arm64: dts: qcom: kodiak: Make the ADSP remote heap no-map Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 2/4] arm64: dts: qcom: glymur: " Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 3/4] arm64: dts: qcom: sm8250: " Jianping Li
2026-10-15 8:00 ` Konrad Dybcio
2026-10-15 7:15 ` [PATCH v1 4/4] arm64: dts: qcom: sm8750: " Jianping Li
2026-10-15 8:01 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®