Thread (36 messages) 36 messages, 4 authors, 2020-10-06

Re: [PATCH 0/6 v14] KASan for Arm

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2020-10-01 19:21:58


On 10/1/2020 8:22 AM, Linus Walleij wrote:
This is the 14th iteration of KASan for ARM/Aarch32.

I have added one patch in the beginning of the series to
fix the issue when the DTB (often attached DTB) ends up
in lowmem. It also amends ARM to copy the device tree
instead of just unflattening it and using it from where
it is.

This fixes my particular issue on the Qualcomm APQ8060
and I hope it may also solve Florian's issue and what
Ard has been seeing. If you inspect patch 1/6 you can
see what has been going on for me. My hypothesis about
what was going on was mostly right.

You are encouraged to test this patch set to find memory out
of bounds bugs with ARM32 platforms and drivers.

There is a git branch you can pull in:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git/log/?h=kasan
It does appear to be slight better, although all platforms that I have 
where memory starts at physical address 0 cannot boot, attached logs 
which are all more or less the same.

The physical memory map looks like this:

0..3GB -> DRAM
3GB..4GB -> Registers, Boot ROM, Boot SRAM
4GB..12GB -> DRAM extension

Do any of the platforms you use for testing have a similar memory map? 
Could you try to contrive a QEMU machine to have something similar in 
case that helps reproducing these failures?

Thanks
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 (2):
   ARM: Handle a device tree in lowmem
   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/prom.h                   |   5 +
  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/devtree.c                     |  14 +-
  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                       |  10 +-
  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                      | 286 ++++++++++++++++++
  arch/arm/mm/mmu.c                             |  55 +++-
  arch/arm/mm/pgd.c                             |  16 +-
  arch/arm/vdso/Makefile                        |   2 +
  28 files changed, 608 insertions(+), 19 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
-- 
Florian

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help