diff options
author | Christoph Hellwig <hch@lst.de> | 2019-07-23 11:33:12 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2019-07-24 17:29:01 +0200 |
commit | ad3c7b18c5b362be5dbd0f2c0bcf1fd5fd659315 (patch) | |
tree | 047eca0078eb5dc66bedf61319e3cea0b071870d /arch/arm/mm/init.c | |
parent | dma-mapping: check pfn validity in dma_common_{mmap,get_sgtable} (diff) | |
download | linux-ad3c7b18c5b362be5dbd0f2c0bcf1fd5fd659315.tar.xz linux-ad3c7b18c5b362be5dbd0f2c0bcf1fd5fd659315.zip |
arm: use swiotlb for bounce buffering on LPAE configs
The DMA API requires that 32-bit DMA masks are always supported, but on
arm LPAE configs they do not currently work when memory is present
above 4GB. Wire up the swiotlb code like for all other architectures
to provide the bounce buffering in that case.
Fixes: 21e07dba9fb11 ("scsi: reduce use of block bounce buffers").
Reported-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r-- | arch/arm/mm/init.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 4920a206dce9..16d373d587c4 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -21,6 +21,7 @@ #include <linux/dma-contiguous.h> #include <linux/sizes.h> #include <linux/stop_machine.h> +#include <linux/swiotlb.h> #include <asm/cp15.h> #include <asm/mach-types.h> @@ -463,6 +464,10 @@ static void __init free_highpages(void) */ void __init mem_init(void) { +#ifdef CONFIG_ARM_LPAE + swiotlb_init(1); +#endif + set_max_mapnr(pfn_to_page(max_pfn) - mem_map); /* this will put all unused low memory onto the freelists */ |