powerpc/32: Disable KASAN with pages bigger than 16k
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Thu, 28 May 2020 10:17:04 +0000 (10:17 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jun 2020 10:59:14 +0000 (20:59 +1000)
Mapping of early shadow area is implemented by using a single static
page table having all entries pointing to the same early shadow page.
The shadow area must therefore occupy full PGD entries.

The shadow area has a size of 128MB starting at 0xf8000000.
With 4k pages, a PGD entry is 4MB
With 16k pages, a PGD entry is 64MB
With 64k pages, a PGD entry is 1GB which is too big.

Until we rework the early shadow mapping, disable KASAN when the page
size is too big.

Fixes: 2edb16efc899 ("powerpc/32: Add KASAN support")
Cc: stable@vger.kernel.org # v5.2+
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/7195fcde7314ccbf7a081b356084a69d421b10d4.1590660977.git.christophe.leroy@csgroup.eu
arch/powerpc/Kconfig

index 1e69cc29954768fbcf674524a706b5a03dddb8ee..2d5367afbb5e551e4153c6c886368ebbdca3dfbb 100644 (file)
@@ -169,8 +169,8 @@ config PPC
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMAP              if PPC_BOOK3S_64 && PPC_RADIX_MMU
        select HAVE_ARCH_JUMP_LABEL
-       select HAVE_ARCH_KASAN                  if PPC32
-       select HAVE_ARCH_KASAN_VMALLOC          if PPC32
+       select HAVE_ARCH_KASAN                  if PPC32 && PPC_PAGE_SHIFT <= 14
+       select HAVE_ARCH_KASAN_VMALLOC          if PPC32 && PPC_PAGE_SHIFT <= 14
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_MMAP_RND_BITS
        select HAVE_ARCH_MMAP_RND_COMPAT_BITS   if COMPAT