[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