arm64: mm: fix DMA zone when dma-ranges is missing
authorBaruch Siach <baruch@tkos.co.il>
Wed, 28 Aug 2024 09:51:24 +0000 (12:51 +0300)
committerChristoph Hellwig <hch@lst.de>
Thu, 29 Aug 2024 04:21:07 +0000 (07:21 +0300)
commit833bd284a45448f04ab9fcd4fdf7ef594d458eed
tree698c103719342bfcb735550b36221cc1113b02f2
parentb5c58b2fdc427e7958412ecb2de2804a1f7c1572
arm64: mm: fix DMA zone when dma-ranges is missing

Some platforms, like Rockchip RK3568 based Odroid M1, do not provide DMA
limits information in device-tree dma-ranges property. Still some device
drivers set DMA limit that relies on DMA zone at low 4GB memory area.
Until commit ba0fb44aed47 ("dma-mapping: replace zone_dma_bits by
zone_dma_limit"), zone_sizes_init() restricted DMA zone to low 32-bit.

Restore DMA zone 32-bit limit when the platform provides no DMA bus
limit information.

Fixes: ba0fb44aed47 ("dma-mapping: replace zone_dma_bits by zone_dma_limit")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/53d988b1-bdce-422a-ae4e-158f305ad703@samsung.com
Suggested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
arch/arm64/mm/init.c