diff -r 587e81dd3540 xen/arch/x86/hvm/emulate.c --- a/xen/arch/x86/hvm/emulate.c Mon Mar 02 14:19:35 2009 +0000 +++ b/xen/arch/x86/hvm/emulate.c Sun Mar 11 19:16:16 2009 +0100 @@ -763,7 +763,7 @@ static int hvmemul_read_msr( if ( (rc = hvm_msr_read_intercept(&_regs)) != 0 ) return rc; - *val = ((uint64_t)(uint32_t)_regs.edx << 32) || (uint32_t)_regs.eax; + *val = ((uint64_t)_regs.edx << 32) | (uint64_t)_regs.eax; return X86EMUL_OKAY; }