• Palmer Dabbelt's avatar
    Merge patch series "riscv: cbo.zero fixes" · e2b6bc28
    Palmer Dabbelt authored
    Samuel Holland <samuel.holland@sifive.com> says:
    
    This series fixes a couple of issues related to using the cbo.zero
    instruction in userspace. The first patch fixes a bug where the wrong
    enable bit gets set if the kernel is running in M-mode. The remaining
    patches fix a bug where the enable bit gets reset to its default value
    after a nonretentive idle state. I have hardware which reproduces this:
    
    Before this series:
      $ tools/testing/selftests/riscv/hwprobe/cbo
      TAP version 13
      1..3
      ok 1 Zicboz block size
      # Zicboz block size: 64
      Illegal instruction
    
    After applying this series:
      $ tools/testing/selftests/riscv/hwprobe/cbo
      TAP version 13
      1..3
      ok 1 Zicboz block size
      # Zicboz block size: 64
      ok 2 cbo.zero
      ok 3 cbo.zero check
      # Totals: pass:3 fail:0 xfail:0 xpass:0 skip:0 error:0
    
    * b4-shazam-merge:
      riscv: Save/restore envcfg CSR during CPU suspend
      riscv: Add a custom ISA extension for the [ms]envcfg CSR
      riscv: Fix enabling cbo.zero when running in M-mode
    
    Link: https://lore.kernel.org/r/20240228065559.3434837-1-samuel.holland@sifive.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    e2b6bc28
cpufeature.c 30.4 KB