[Ah, I missed v13 and v14, feel free to Cc me on next versions.]

2025-05-02T16:30:36-07:00, Deepak Gupta <de...@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.

Reply via email to