Commit 3033b2b1 authored by Zishun Yi's avatar Zishun Yi Committed by Paul Walmsley
Browse files

riscv: Reset pmm when PR_TAGGED_ADDR_ENABLE is not set



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: 2e174308 ("riscv: Add support for the tagged address ABI")
Signed-off-by: default avatarZishun Yi <vulab@iscas.ac.cn>
Reviewed-by: default avatarSamuel Holland <samuel.holland@sifive.com>
Link: https://patch.msgid.link/20260322160022.21908-1-vulab@iscas.ac.cn


Signed-off-by: default avatarPaul Walmsley <pjw@kernel.org>
parent 57f0253b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;