[PATCH v15 05/27] riscv: usercfi state for task and save/restore of CSR_SSP on trap entry/exit
Radim Krčmář
rkrcmar at ventanamicro.com
Tue May 6 03:10:34 PDT 2025
[Ah, I missed v13 and v14, feel free to Cc me on next versions.]
2025-05-02T16:30:36-07:00, Deepak Gupta <debug at rivosinc.com>:
> diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
> @@ -91,6 +91,32 @@
> +.macro save_userssp tmp, status
> + ALTERNATIVE("nops(4)",
> + __stringify( \
> + andi \tmp, \status, SR_SPP; \
> + bnez \tmp, skip_ssp_save; \
> + csrrw \tmp, CSR_SSP, x0; \
> + REG_S \tmp, TASK_TI_USER_SSP(tp); \
> + skip_ssp_save:),
> + 0,
> + RISCV_ISA_EXT_ZICFISS,
> + CONFIG_RISCV_USER_CFI)
> +.endm
> +
> +.macro restore_userssp tmp
> + ALTERNATIVE("nops(2)",
> + __stringify( \
> + REG_L \tmp, TASK_TI_USER_SSP(tp); \
> + csrw CSR_SSP, \tmp),
> + 0,
> + RISCV_ISA_EXT_ZICFISS,
> + CONFIG_RISCV_USER_CFI)
> +.endm
Do we need to emit the nops when CONFIG_RISCV_USER_CFI isn't selected?
(Why not put #ifdef CONFIG_RISCV_USER_CFI around the ALTERNATIVES?)
Thanks.
More information about the linux-riscv
mailing list