mbox series

[v4,0/3] KASAN support for RISC-V

Message ID 20191028024101.26655-1-nickhu@andestech.com (mailing list archive)
Headers show
Series KASAN support for RISC-V | expand

Message

Nick Hu Oct. 28, 2019, 2:40 a.m. UTC
KASAN is an important runtime memory debugging feature in linux kernel which can
detect use-after-free and out-of-bounds problems.

Changes in v2:
  - Remove the porting of memmove and exclude the check instead.
  - Fix some code noted by Christoph Hellwig

Changes in v3:
  - Update the KASAN documentation to mention that riscv is supported.

Changes in v4:
  - Correct the commit log
  - Fix the bug reported by Greentime Hu

Nick Hu (3):
  kasan: No KASAN's memmove check if archs don't have it.
  riscv: Add KASAN support
  kasan: Add riscv to KASAN documentation.

 Documentation/dev-tools/kasan.rst   |   4 +-
 arch/riscv/Kconfig                  |   1 +
 arch/riscv/include/asm/kasan.h      |  27 ++++++++
 arch/riscv/include/asm/pgtable-64.h |   5 ++
 arch/riscv/include/asm/string.h     |   9 +++
 arch/riscv/kernel/head.S            |   3 +
 arch/riscv/kernel/riscv_ksyms.c     |   2 +
 arch/riscv/kernel/setup.c           |   5 ++
 arch/riscv/kernel/vmlinux.lds.S     |   1 +
 arch/riscv/lib/memcpy.S             |   5 +-
 arch/riscv/lib/memset.S             |   5 +-
 arch/riscv/mm/Makefile              |   6 ++
 arch/riscv/mm/kasan_init.c          | 104 ++++++++++++++++++++++++++++
 mm/kasan/common.c                   |   2 +
 14 files changed, 173 insertions(+), 6 deletions(-)
 create mode 100644 arch/riscv/include/asm/kasan.h
 create mode 100644 arch/riscv/mm/kasan_init.c

Comments

Greentime Hu Oct. 28, 2019, 7:01 a.m. UTC | #1
Nick Hu <nickhu@andestech.com> 於 2019年10月28日 週一 上午10:41寫道:
>
> KASAN is an important runtime memory debugging feature in linux kernel which can
> detect use-after-free and out-of-bounds problems.
>
> Changes in v2:
>   - Remove the porting of memmove and exclude the check instead.
>   - Fix some code noted by Christoph Hellwig
>
> Changes in v3:
>   - Update the KASAN documentation to mention that riscv is supported.
>
> Changes in v4:
>   - Correct the commit log
>   - Fix the bug reported by Greentime Hu
>
> Nick Hu (3):
>   kasan: No KASAN's memmove check if archs don't have it.
>   riscv: Add KASAN support
>   kasan: Add riscv to KASAN documentation.
>
>  Documentation/dev-tools/kasan.rst   |   4 +-
>  arch/riscv/Kconfig                  |   1 +
>  arch/riscv/include/asm/kasan.h      |  27 ++++++++
>  arch/riscv/include/asm/pgtable-64.h |   5 ++
>  arch/riscv/include/asm/string.h     |   9 +++
>  arch/riscv/kernel/head.S            |   3 +
>  arch/riscv/kernel/riscv_ksyms.c     |   2 +
>  arch/riscv/kernel/setup.c           |   5 ++
>  arch/riscv/kernel/vmlinux.lds.S     |   1 +
>  arch/riscv/lib/memcpy.S             |   5 +-
>  arch/riscv/lib/memset.S             |   5 +-
>  arch/riscv/mm/Makefile              |   6 ++
>  arch/riscv/mm/kasan_init.c          | 104 ++++++++++++++++++++++++++++
>  mm/kasan/common.c                   |   2 +
>  14 files changed, 173 insertions(+), 6 deletions(-)
>  create mode 100644 arch/riscv/include/asm/kasan.h
>  create mode 100644 arch/riscv/mm/kasan_init.c
>
Hi Nick,

I have tested KASAN feature with test_kasan.ko based on commit
cd9e72b80090a8cd7d84a47a30a06fa92ff277d1 (tag: riscv/for-v5.4-rc3) and
it passed in Qemu and Unleashed board.
Thank you for fixing the bug. :)

Tested-by: Greentime Hu <greentime.hu@sifive.com>