[PATCH 0/5 v11] KASan for Arm

Linus Walleij linus.walleij at linaro.org
Tue Jun 30 09:37:31 EDT 2020


This is the v11 version of the KASan patches for ARM.

The main changes from the v10 version is:

- LPAE now compiles and works again, at least Versatile Express
  Cortex A15 TC1 in QEMU (which is the LPAE system I have
  access to).

- Rewrite some of the page directory initialization after
  helpful feedback from Mike Rapoport and Russell King.

Also minor improvements to commit messages and comments
in the code so it is clear (for most cases I hope) why
some ifdefs etc are there.

All tested platforms from ARMv4 thru ARMv7 work fine. I
have not been able to re-test with the Qualcomm DragonBoard
APQ8060 yet, but I suspect the problem there is that the
DT parser code reaches out into non-kernel memory and
needs some de-instrumentation, possibly combined with the
memory holding the device tree getting corrupted or reused
before we have a chance to parse it.

Abbott Liu (1):
  ARM: Define the virtual space of KASan's shadow region

Andrey Ryabinin (3):
  ARM: Disable KASan instrumentation for some code
  ARM: Replace string mem* functions for KASan
  ARM: Enable KASan for ARM

Linus Walleij (1):
  ARM: Initialize the mapping of KASan shadow memory

 Documentation/arm/memory.rst                  |   5 +
 Documentation/dev-tools/kasan.rst             |   4 +-
 .../features/debug/KASAN/arch-support.txt     |   2 +-
 arch/arm/Kconfig                              |  10 +
 arch/arm/boot/compressed/Makefile             |   1 +
 arch/arm/boot/compressed/string.c             |  19 ++
 arch/arm/include/asm/kasan.h                  |  32 ++
 arch/arm/include/asm/kasan_def.h              |  81 +++++
 arch/arm/include/asm/memory.h                 |   5 +
 arch/arm/include/asm/pgalloc.h                |   8 +-
 arch/arm/include/asm/string.h                 |  21 ++
 arch/arm/include/asm/thread_info.h            |   8 +
 arch/arm/include/asm/uaccess-asm.h            |   2 +-
 arch/arm/kernel/entry-armv.S                  |   3 +-
 arch/arm/kernel/entry-common.S                |   9 +-
 arch/arm/kernel/head-common.S                 |   7 +-
 arch/arm/kernel/setup.c                       |   2 +
 arch/arm/kernel/unwind.c                      |   6 +-
 arch/arm/lib/memcpy.S                         |   3 +
 arch/arm/lib/memmove.S                        |   5 +-
 arch/arm/lib/memset.S                         |   3 +
 arch/arm/mm/Makefile                          |   5 +
 arch/arm/mm/kasan_init.c                      | 288 ++++++++++++++++++
 arch/arm/mm/mmu.c                             |  18 ++
 arch/arm/mm/pgd.c                             |  16 +-
 arch/arm/vdso/Makefile                        |   2 +
 26 files changed, 551 insertions(+), 14 deletions(-)
 create mode 100644 arch/arm/include/asm/kasan.h
 create mode 100644 arch/arm/include/asm/kasan_def.h
 create mode 100644 arch/arm/mm/kasan_init.c

-- 
2.25.4




More information about the linux-arm-kernel mailing list