From 5b305e30a55d93d507006dd11685bdeb7e7207e8 Mon Sep 17 00:00:00 2001 From: Atish Patra Date: Tue, 13 May 2025 17:25:15 -0700 Subject: [PATCH] lib: sbi: Only enable TM bit in scounteren The S-mode should disable Cycle and instruction counter for user space to avoid side channel attacks. The Linux kernel already does this so that any random user space code shouldn't be able to monitor cycle/instruction without higher privilege mode involvement. Remove the CY/IR bits in scountern in OpenSBI. Reviewed-by: Anup Patel Signed-off-by: Atish Patra Link: https://lore.kernel.org/r/20250513-fix_scounteren-v1-1-01018e0c0b0a@rivosinc.com Signed-off-by: Anup Patel --- lib/sbi/sbi_hart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c index 054a405c..6a2d7d6f 100644 --- a/lib/sbi/sbi_hart.c +++ b/lib/sbi/sbi_hart.c @@ -49,10 +49,10 @@ static void mstatus_init(struct sbi_scratch *scratch) csr_write(CSR_MSTATUS, mstatus_val); - /* Disable user mode usage of all perf counters except default ones (CY, TM, IR) */ + /* Disable user mode usage of all perf counters except TM */ if (misa_extension('S') && sbi_hart_priv_version(scratch) >= SBI_HART_PRIV_VER_1_10) - csr_write(CSR_SCOUNTEREN, 7); + csr_write(CSR_SCOUNTEREN, 0x02); /** * OpenSBI doesn't use any PMU counters in M-mode.