[PATCH] riscv: Reset pmm when PR_TAGGED_ADDR_ENABLE is not set

Samuel Holland samuel.holland at sifive.com
Sun Mar 22 21:06:25 PDT 2026


On 2026-03-22 11:00 AM, Zishun Yi wrote:
> In set_tagged_addr_ctrl(), when PR_TAGGED_ADDR_ENABLE is not set, pmlen
> is correctly set to 0, but it forgets to reset pmm. This results in the
> CPU pmm state not corresponding to the software pmlen state.
> 
> Fix this by resetting pmm along with pmlen.
> 
> Fixes: 2e1743085887 ("riscv: Add support for the tagged address ABI")
> Signed-off-by: Zishun Yi <vulab at iscas.ac.cn>

Thanks for the fix!

Reviewed-by: Samuel Holland <samuel.holland at sifive.com>

> ---
>  arch/riscv/kernel/process.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c
> index aacb23978f93..5957effab57c 100644
> --- a/arch/riscv/kernel/process.c
> +++ b/arch/riscv/kernel/process.c
> @@ -347,8 +347,10 @@ long set_tagged_addr_ctrl(struct task_struct *task, unsigned long arg)
>  	if (arg & PR_TAGGED_ADDR_ENABLE && (tagged_addr_disabled || !pmlen))
>  		return -EINVAL;
>  
> -	if (!(arg & PR_TAGGED_ADDR_ENABLE))
> +	if (!(arg & PR_TAGGED_ADDR_ENABLE)) {
>  		pmlen = PMLEN_0;
> +		pmm = ENVCFG_PMM_PMLEN_0;
> +	}
>  
>  	if (mmap_write_lock_killable(mm))
>  		return -EINTR;




More information about the linux-riscv mailing list