lkml.org 
[lkml]   [2022]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 161/244] KVM: arm64: Reject 32bit user PSTATE on asymmetric systems
    Date
    From: Oliver Upton <oliver.upton@linux.dev>

    [ Upstream commit b10d86fb8e46cc812171728bcd326df2f34e9ed5 ]

    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 commit 2122a833316f ("arm64: Allow mismatched
    32-bit EL0 support"), KVM's did not.

    Fixes: 2122a833316f ("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>
    ---
    arch/arm64/kvm/guest.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
    index 5ce26bedf23c..94108e2e0917 100644
    --- a/arch/arm64/kvm/guest.c
    +++ b/arch/arm64/kvm/guest.c
    @@ -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;
    switch (mode) {
    case PSR_AA32_MODE_USR:
    - if (!system_supports_32bit_el0())
    + if (!kvm_supports_32bit_el0())
    return -EINVAL;
    break;
    case PSR_AA32_MODE_FIQ:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-23 12:17    [W:4.037 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site