| From: |
| Linus Walleij <linus.walleij-AT-linaro.org> |
| To: |
| Florian Fainelli <f.fainelli-AT-gmail.com>, Abbott Liu <liuwenliang-AT-huawei.com>, Russell King <linux-AT-armlinux.org.uk>, Ard Biesheuvel <ardb-AT-kernel.org>, Andrey Ryabinin <aryabinin-AT-virtuozzo.com> |
| Subject: |
| [PATCH 0/5 v8] KASan for Arm |
| Date: |
| Thu, 7 May 2020 14:45:17 +0200 |
| Message-ID: |
| <20200507124522.171323-1-linus.walleij@linaro.org> |
| Cc: |
| Linus Walleij <linus.walleij-AT-linaro.org>, Arnd Bergmann <arnd-AT-arndb.de>, linux-arm-kernel-AT-lists.infradead.org |
| Archive-link: |
| Article |
It's time to repost this, now that I got it into better shape.
Main changes:
- Restore the series number to v8 following my previous
"v1" which was actually v7, following Florians versions.
What was I thinking. :(
- Doesn't crash randomly in QEMU etc. This was because
mmu.c was instrumented, and when we were lucky this did
not poke around in memory that crashed us.
- Handle the undefined symbols better (like suggested by
Ard)
- Fix up documentation.
- Better patch split in logical chunks.
Remaining issues:
- Does it work for you?
- Crash on ARMv5/v5 in v4wbi_flush_user_tlb_range+0x10/0x4c.
I wonder why. If you know, please tell me, I naturally
have to fix this.
- The code in kasan_init.c to first back up TTBR0 and then
restore it looks *fragile* even if it is working. I think
we need to do something better in a per-proc file such
as is done in cpu_v7_switch_mm() and other well organized
MMU manipulation, I certainly feel this should be done
like that.
Abbott Liu (1):
ARM: Define the virtual space of KASan's shadow region
Andrey Ryabinin (4):
ARM: Disable KASan instrumentation for some code
ARM: Replace string mem* functions for KASan
ARM: Initialize the mapping of KASan shadow memory
ARM: Enable KASan for ARM
Documentation/arm/memory.rst | 5 +
Documentation/dev-tools/kasan.rst | 4 +-
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 | 9 +-
arch/arm/include/asm/string.h | 21 ++
arch/arm/include/asm/thread_info.h | 4 +
arch/arm/kernel/entry-armv.S | 5 +-
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 | 324 +++++++++++++++++++++++++++++
arch/arm/mm/mmu.c | 18 ++
arch/arm/mm/pgd.c | 15 +-
arch/arm/vdso/Makefile | 2 +
24 files changed, 581 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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel