• Palmer Dabbelt's avatar
    Merge patch series "riscv: Improve KASAN coverage to fix unit tests" · 58354376
    Palmer Dabbelt authored
    Samuel Holland <samuel.holland@sifive.com> says:
    
    This series fixes two areas where uninstrumented assembly routines
    caused gaps in KASAN coverage on RISC-V, which were caught by KUnit
    tests. The KASAN KUnit test suite passes after applying this series.
    
    This series fixes the following test failures:
      # kasan_strings: EXPECTATION FAILED at mm/kasan/kasan_test.c:1520
      KASAN failure expected in "kasan_int_result = strcmp(ptr, "2")", but none occurred
      # kasan_strings: EXPECTATION FAILED at mm/kasan/kasan_test.c:1524
      KASAN failure expected in "kasan_int_result = strlen(ptr)", but none occurred
      not ok 60 kasan_strings
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1531
      KASAN failure expected in "set_bit(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1533
      KASAN failure expected in "clear_bit(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1535
      KASAN failure expected in "clear_bit_unlock(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1536
      KASAN failure expected in "__clear_bit_unlock(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1537
      KASAN failure expected in "change_bit(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1543
      KASAN failure expected in "test_and_set_bit(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1545
      KASAN failure expected in "test_and_set_bit_lock(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1546
      KASAN failure expected in "test_and_clear_bit(nr, addr)", but none occurred
      # kasan_bitops_generic: EXPECTATION FAILED at mm/kasan/kasan_test.c:1548
      KASAN failure expected in "test_and_change_bit(nr, addr)", but none occurred
      not ok 61 kasan_bitops_generic
    
    Samuel Holland (2):
      riscv: Omit optimized string routines when using KASAN
      riscv: Enable bitops instrumentation
    
    arch/riscv/include/asm/bitops.h | 43 ++++++++++++++++++---------------
     arch/riscv/include/asm/string.h |  2 ++
     arch/riscv/kernel/riscv_ksyms.c |  3 ---
     arch/riscv/lib/Makefile         |  2 ++
     arch/riscv/lib/strcmp.S         |  1 +
     arch/riscv/lib/strlen.S         |  1 +
     arch/riscv/lib/strncmp.S        |  1 +
     arch/riscv/purgatory/Makefile   |  2 ++
     8 files changed, 32 insertions(+), 23 deletions(-)
    
    * b4-shazam-merge:
      riscv: Enable bitops instrumentation
      riscv: Omit optimized string routines when using KASAN
    
    Link: https://lore.kernel.org/r/20240801033725.28816-1-samuel.holland@sifive.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    58354376
strncmp.S 2.22 KB