lib: sbi: Fix FP state enable in sbi_fp_save

sbi_fp_save() currently sets mstatus.VS before executing floating-point
store instructions. VS controls vector state and does not enable
floating-point instructions.

Set mstatus.FS instead, matching sbi_fp_restore(), so floating-point
state can be saved when FS was previously Off.

Fixes: 718e1d194f ("lib: sbi: Add floating-point context save/restore support.")
Signed-off-by: whensun <theodoruswensanfebruanto025@gmail.com>
Co-developed-by: Huamao Wu <huamao.wu@spacemit.com>
Signed-off-by: Huamao Wu <huamao.wu@spacemit.com>
Link: https://lore.kernel.org/r/20260828213104.84490-1-theodoruswensanfebruanto025@gmail.com
Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
whensun
2026-09-05 12:33:48 +05:30
committed by Anup Patel
parent bf459f85bf
commit 7774b82e4a
+1 -1
View File
@@ -20,7 +20,7 @@ void sbi_fp_save(struct sbi_fp_context *dst)
if (!dst) if (!dst)
return; return;
mstatus_orig = csr_read_set(CSR_MSTATUS, MSTATUS_VS); mstatus_orig = csr_read_set(CSR_MSTATUS, MSTATUS_FS);
asm volatile( asm volatile(
#if defined(__riscv_d) #if defined(__riscv_d)