Il 24/02/2014 11:58, Liu, Jinsong ha scritto:
@@ -599,6 +599,9 @@ int __kvm_set_xcr(struct kvm_vcpu *vcpu, u32 index, u64 xcr)
        u64 old_xcr0 = vcpu->arch.xcr0;
        u64 valid_bits;

+       if (!kvm_x86_ops->mpx_supported || !kvm_x86_ops->mpx_supported())
+               xcr0 &= ~(XSTATE_BNDREGS | XSTATE_BNDCSR);
+
        /* Only support XCR_XFEATURE_ENABLED_MASK(xcr0) now  */
        if (index != XCR_XFEATURE_ENABLED_MASK)
                return 1;

This hunk is incorrect, and I can simply drop it when applying. If MPX is not supported, it should not be in the 0Dh CPUID leaf and thus in vcpu->arch.guest_supported_xcr0.

This however relies on userspace passing a "sensible" value of CPUID. I'll send a patch to strengthen the computation of guest_supported_xcr0.

Thanks!

Paolo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to