x86 xsave: Fix 64bit xsave_feature support for set_xcr0().
authorKeir Fraser <keir@xen.org>
Fri, 24 Dec 2010 08:37:34 +0000 (08:37 +0000)
committerKeir Fraser <keir@xen.org>
Fri, 24 Dec 2010 08:37:34 +0000 (08:37 +0000)
Signed-off-by: Wei Huang <wei.huang2@amd.com>
xen/arch/x86/i387.c

index 1ddb2c7495872437892e5cde2365c1cfe8d11fb8..5f3f041613c1d5e6023e1ad46dfd380f0e50e0fb 100644 (file)
@@ -187,7 +187,7 @@ void xsave_init(void)
      * Set CR4_OSXSAVE and run "cpuid" to get xsave_cntxt_size.
      */
     set_in_cr4(X86_CR4_OSXSAVE);
-    set_xcr0(eax & XCNTXT_MASK);
+    set_xcr0((((u64)edx << 32) | eax) & XCNTXT_MASK);
     cpuid_count(XSTATE_CPUID, 0, &eax, &ebx, &ecx, &edx);
 
     if ( cpu == 0 )