mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 09:14:19 +08:00
KVM: arm64: Reject 32bit user PSTATE on asymmetric systems
[ Upstream commitb10d86fb8e
] KVM does not support AArch32 EL0 on asymmetric systems. To that end, prevent userspace from configuring a vCPU in such a state through setting PSTATE. It is already ABI that KVM rejects such a write on a system where AArch32 EL0 is unsupported. Though the kernel's definition of a 32bit system changed in commit2122a83331
("arm64: Allow mismatched 32-bit EL0 support"), KVM's did not. Fixes:2122a83331
("arm64: Allow mismatched 32-bit EL0 support") Signed-off-by: Oliver Upton <oliver.upton@linux.dev> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220816192554.1455559-3-oliver.upton@linux.dev Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
cb332a666e
commit
57b5be2bd1
@ -242,7 +242,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
|
|||||||
u64 mode = (*(u64 *)valp) & PSR_AA32_MODE_MASK;
|
u64 mode = (*(u64 *)valp) & PSR_AA32_MODE_MASK;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case PSR_AA32_MODE_USR:
|
case PSR_AA32_MODE_USR:
|
||||||
if (!system_supports_32bit_el0())
|
if (!kvm_supports_32bit_el0())
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
break;
|
break;
|
||||||
case PSR_AA32_MODE_FIQ:
|
case PSR_AA32_MODE_FIQ:
|
||||||
|
Loading…
Reference in New Issue
Block a user