lkml.org 
[lkml]   [2022]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH AUTOSEL 5.16 07/28] x86/kvm/fpu: Limit guest user_xfeatures to supported bits of XCR0
    From
    On 3/1/22 21:13, Sasha Levin wrote:
    > diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
    > index d28829403ed08..6ac01f9828530 100644
    > --- a/arch/x86/kernel/fpu/xstate.c
    > +++ b/arch/x86/kernel/fpu/xstate.c
    > @@ -1563,7 +1563,10 @@ static int fpstate_realloc(u64 xfeatures, unsigned int ksize,
    > fpregs_restore_userregs();
    >
    > newfps->xfeatures = curfps->xfeatures | xfeatures;
    > - newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
    > +
    > + if (!guest_fpu)
    > + newfps->user_xfeatures = curfps->user_xfeatures | xfeatures;
    > +
    > newfps->xfd = curfps->xfd & ~xfeatures;
    >
    > curfps = fpu_install_fpstate(fpu, newfps);
    > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
    > index bf18679757c70..875dce4aa2d28 100644
    > --- a/arch/x86/kvm/cpuid.c
    > +++ b/arch/x86/kvm/cpuid.c
    > @@ -276,6 +276,8 @@ static void kvm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu)
    > vcpu->arch.guest_supported_xcr0 =
    > cpuid_get_supported_xcr0(vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent);
    >
    > + vcpu->arch.guest_fpu.fpstate->user_xfeatures = vcpu->arch.guest_supported_xcr0;
    > +
    > kvm_update_pv_runtime(vcpu);
    >
    > vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu);

    Leonardo, was this also buggy in 5.16? (I should have asked for a Fixes
    tag...).

    Paolo

    \
     
     \ /
      Last update: 2022-03-01 21:26    [W:6.812 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site