1. 19 Sep, 2024 3 commits
    • 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
    • Samuel Holland's avatar
      riscv: Enable bitops instrumentation · 77514915
      Samuel Holland authored
      Instead of implementing the bitops functions directly in assembly,
      provide the arch_-prefixed versions and use the wrappers from
      asm-generic to add instrumentation. This improves KASAN coverage and
      fixes the kasan_bitops_generic() unit test.
      Signed-off-by: default avatarSamuel Holland <samuel.holland@sifive.com>
      Reviewed-by: default avatarAlexandre Ghiti <alexghiti@rivosinc.com>
      Tested-by: default avatarAlexandre Ghiti <alexghiti@rivosinc.com>
      Link: https://lore.kernel.org/r/20240801033725.28816-3-samuel.holland@sifive.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      77514915
    • Samuel Holland's avatar
      riscv: Omit optimized string routines when using KASAN · 58ff5371
      Samuel Holland authored
      The optimized string routines are implemented in assembly, so they are
      not instrumented for use with KASAN. Fall back to the C version of the
      routines in order to improve KASAN coverage. This fixes the
      kasan_strings() unit test.
      Signed-off-by: default avatarSamuel Holland <samuel.holland@sifive.com>
      Reviewed-by: default avatarAlexandre Ghiti <alexghiti@rivosinc.com>
      Tested-by: default avatarAlexandre Ghiti <alexghiti@rivosinc.com>
      Link: https://lore.kernel.org/r/20240801033725.28816-2-samuel.holland@sifive.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      58ff5371
  2. 17 Sep, 2024 7 commits
  3. 16 Sep, 2024 8 commits
  4. 15 Sep, 2024 8 commits
  5. 14 Sep, 2024 2 commits
  6. 12 Sep, 2024 9 commits
  7. 03 Sep, 2024 2 commits
  8. 15 Aug, 2024 1 commit