diff -r 4001ab0d5785 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c	Fri Jun 25 13:23:49 2010 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c	Fri Jun 25 16:36:43 2010 +0200
@@ -862,8 +862,7 @@ static void svm_init_erratum_383(struct 
 
 static int svm_cpu_up(void)
 {
-    u32 phys_hsa_lo, phys_hsa_hi;   
-    uint64_t phys_hsa, msr_content;
+    uint64_t msr_content;
     int rc, cpu = smp_processor_id();
     struct cpuinfo_x86 *c = &cpu_data[cpu];
  
@@ -881,10 +880,7 @@ static int svm_cpu_up(void)
     write_efer(read_efer() | EFER_SVME);
 
     /* Initialize the HSA for this core. */
-    phys_hsa = (u64)virt_to_maddr(hsa[cpu]);
-    phys_hsa_lo = (u32)phys_hsa;
-    phys_hsa_hi = (u32)(phys_hsa >> 32);    
-    wrmsr(MSR_K8_VM_HSAVE_PA, phys_hsa_lo, phys_hsa_hi);
+    wrmsrl(MSR_K8_VM_HSAVE_PA, (uint64_t)virt_to_maddr(hsa[cpu]));
 
     /* check for erratum 383 */
     svm_init_erratum_383(c);