Commit 56a70874 authored by Yang Shi's avatar Yang Shi Committed by Catalin Marinas
Browse files

arm64: mm: Fix zone_dma_limit calculation



Commit ba0fb44a ("dma-mapping: replace zone_dma_bits by
zone_dma_limit") and subsequent patches changed how zone_dma_limit is
calculated to allow a reduced ZONE_DMA even when RAM starts above 4GB.
Commit 122c234e ("arm64: mm: keep low RAM dma zone") further fixed
this to ensure ZONE_DMA remains below U32_MAX if RAM starts below 4GB,
especially on platforms that do not have IORT or DT description of the
device DMA ranges. While zone boundaries calculation was fixed by the
latter commit, zone_dma_limit, used to determine the GFP_DMA flag in the
core code, was not updated. This results in excessive use of GFP_DMA and
unnecessary ZONE_DMA allocations on some platforms.

Update zone_dma_limit to match the actual upper bound of ZONE_DMA.

Fixes: ba0fb44a ("dma-mapping: replace zone_dma_bits by zone_dma_limit")
Cc: <stable@vger.kernel.org> # 6.12.x
Reported-by: default avatarYutang Jiang <jiangyutang@os.amperecomputing.com>
Tested-by: default avatarYutang Jiang <jiangyutang@os.amperecomputing.com>
Signed-off-by: default avatarYang Shi <yang@os.amperecomputing.com>
Link: https://lore.kernel.org/r/20241125171650.77424-1-yang@os.amperecomputing.com


[catalin.marinas@arm.com: some tweaking of the commit log]
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 49ccf2c3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment