diff options
author | Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> | 2018-07-30 18:26:35 +0200 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2018-09-04 22:21:37 +0200 |
commit | 2b720e99a1297417b979bf4810a0f01d27133c48 (patch) | |
tree | 3becef1f38b77766b6427242eadce453ee7b5226 /arch | |
parent | ARC: dma [IOC] Enable per device io coherency (diff) | |
download | linux-2b720e99a1297417b979bf4810a0f01d27133c48.tar.xz linux-2b720e99a1297417b979bf4810a0f01d27133c48.zip |
ARC: IOC: panic if both IOC and ZONE_HIGHMEM enabled
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arc/mm/cache.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arc/mm/cache.c b/arch/arc/mm/cache.c index 2d389cab46ba..f2701c13a66b 100644 --- a/arch/arc/mm/cache.c +++ b/arch/arc/mm/cache.c @@ -1144,6 +1144,19 @@ noinline void __init arc_ioc_setup(void) { unsigned int ioc_base, mem_sz; + /* + * As for today we don't support both IOC and ZONE_HIGHMEM enabled + * simultaneously. This happens because as of today IOC aperture covers + * only ZONE_NORMAL (low mem) and any dma transactions outside this + * region won't be HW coherent. + * If we want to use both IOC and ZONE_HIGHMEM we can use + * bounce_buffer to handle dma transactions to HIGHMEM. + * Also it is possible to modify dma_direct cache ops or increase IOC + * aperture size if we are planning to use HIGHMEM without PAE. + */ + if (IS_ENABLED(CONFIG_HIGHMEM)) + panic("IOC and HIGHMEM can't be used simultaneously"); + /* Flush + invalidate + disable L1 dcache */ __dc_disable(); |