]> www.infradead.org Git - users/willy/pagecache.git/commit
dma-mapping: replace zone_dma_bits by zone_dma_limit
authorCatalin Marinas <catalin.marinas@arm.com>
Sun, 11 Aug 2024 07:09:35 +0000 (10:09 +0300)
committerChristoph Hellwig <hch@lst.de>
Thu, 22 Aug 2024 04:18:00 +0000 (06:18 +0200)
commitba0fb44aed47693cc2482427f63ba6cd19051327
tree621c630705defd780fbeac9b9b103f3c80264c23
parentfa3c109a6d302b56437a6412c5f3044c3e12de03
dma-mapping: replace zone_dma_bits by zone_dma_limit

The 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 a plain  address for the DMA zone limit instead.

Since the 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@arm.com>
Co-developed-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Petr Tesarik <ptesarik@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
arch/arm64/mm/init.c
arch/powerpc/mm/mem.c
arch/s390/mm/init.c
include/linux/dma-direct.h
kernel/dma/direct.c
kernel/dma/pool.c
kernel/dma/swiotlb.c