]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xen/arm: call uaccess_ttbr0_enable for dm_op hypercall
authorStefano Stabellini <stefano.stabellini@amd.com>
Mon, 12 May 2025 21:54:52 +0000 (14:54 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:07:25 +0000 (11:07 +0100)
commitcbd94a0b5b151eb5e2f88d2ab043fbbfe827d7ab
treec592de8e877f91fe8371c52e314329c9d02b1c59
parent6ffa219f90ad16cf59d709cec9837c6d9a7560dc
xen/arm: call uaccess_ttbr0_enable for dm_op hypercall

commit 7f9bbc1140ff8796230bc2634055763e271fd692 upstream.

dm_op hypercalls might come from userspace and pass memory addresses as
parameters. The memory addresses typically correspond to buffers
allocated in userspace to hold extra hypercall parameters.

On ARM, when CONFIG_ARM64_SW_TTBR0_PAN is enabled, they might not be
accessible by Xen, as a result ioreq hypercalls might fail. See the
existing comment in arch/arm64/xen/hypercall.S regarding privcmd_call
for reference.

For privcmd_call, Linux calls uaccess_ttbr0_enable before issuing the
hypercall thanks to commit 9cf09d68b89a. We need to do the same for
dm_op. This resolves the problem.

Cc: stable@kernel.org
Fixes: 9cf09d68b89a ("arm64: xen: Enable user access before a privcmd hvc call")
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Message-ID: <alpine.DEB.2.22.394.2505121446370.8380@ubuntu-linux-20-04-desktop>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/xen/hypercall.S