sh: don't allow non-coherent DMA for NOMMU
authorChristoph Hellwig <hch@lst.de>
Tue, 14 Jul 2020 12:18:55 +0000 (14:18 +0200)
committerRich Felker <dalias@libc.org>
Sat, 15 Aug 2020 02:05:17 +0000 (22:05 -0400)
The code handling non-coherent DMA depends on being able to remap code
as non-cached.  But that can't be done without an MMU, so using this
option on NOMMU builds is broken.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Felker <dalias@libc.org>
arch/sh/Kconfig

index 1bf23e2..7082a4a 100644 (file)
@@ -61,6 +61,7 @@ config SUPERH
        select MAY_HAVE_SPARSE_IRQ
        select MODULES_USE_ELF_RELA
        select NEED_SG_DMA_LENGTH
+       select NO_DMA if !MMU && !DMA_COHERENT
        select NO_GENERIC_PCI_IOPORT_MAP if PCI
        select OLD_SIGACTION
        select OLD_SIGSUSPEND
@@ -135,7 +136,7 @@ config DMA_COHERENT
        bool
 
 config DMA_NONCOHERENT
-       def_bool !DMA_COHERENT
+       def_bool !NO_DMA && !DMA_COHERENT
        select ARCH_HAS_SYNC_DMA_FOR_DEVICE
 
 config PGTABLE_LEVELS