Hi,[...]
On 11/08/2024 09:09, Baruch Siach wrote:
From: Catalin Marinas <catalin.marinas@xxxxxxx>
Hardware DMA limit might not be power of 2. When RAM range starts above
0, say 4GB, DMA limit of 30 bits should end at 5GB. A single high bit
can not encode this limit.
Use plain address for DMA zone limit.
Since DMA zone can now potentially span beyond 4GB physical limit of
DMA32, make sure to use DMA zone for GFP_DMA32 allocations in that case.
Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Co-developed-by: Baruch Siach <baruch@xxxxxxxxxx>
Signed-off-by: Baruch Siach <baruch@xxxxxxxxxx>
---
arch/arm64/mm/init.c | 30 +++++++++++++++---------------
arch/powerpc/mm/mem.c | 5 ++++-
arch/s390/mm/init.c | 2 +-
include/linux/dma-direct.h | 2 +-
kernel/dma/direct.c | 6 +++---
kernel/dma/pool.c | 4 ++--
kernel/dma/swiotlb.c | 6 +++---
7 files changed, 29 insertions(+), 26 deletions(-)
<snip>
This change breaks the Qualcomm SM8550-HDK boot since next-20240826.
It doesn't affect SM8550-QRD or other similar SoCs like SM8650 or SM8450.
The last CI run on next-20240828 can be found at:
https://git.codelinaro.org/linaro/qcomlt/ci/staging/cdba-tester/-/pipelines/100936
SM8550-HDK boot log:
https://git.codelinaro.org/linaro/qcomlt/ci/staging/cdba-tester/-/jobs/165617
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000080000000-0x0000000affffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty