On 10/05/2017 12:19, Wanpeng Li wrote: > * with old userspace. > */ > - if (xstate_bv & ~kvm_supported_xcr0()) > + if (xstate_bv & ~kvm_supported_xcr0() || > + mxcsr & ~vcpu->arch.guest_fpu.state.xsave.i387.mxcsr_mask) > return -EINVAL; > load_xsave(vcpu, (u8 *)guest_xsave->region); > } else { > - if (xstate_bv & ~XFEATURE_MASK_FPSSE) > + if (xstate_bv & ~XFEATURE_MASK_FPSSE || > + mxcsr & ~vcpu->arch.guest_fpu.state.fxsave.mxcsr_mask) > return -EINVAL; > memcpy(&vcpu->arch.guest_fpu.state.fxsave, > guest_xsave->region, sizeof(struct fxregs_state)); Hmm, thinking more about it, maybe use mxcsr_feature_mask instead of digging into vcpu->arch.guest_fpu? If you send v2, please remember to Cc stable@xxxxxxxxxxxxxxx. Paolo