diff -r 2c6ae364ed7b xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c Mon Aug 02 11:00:56 2010 +0100 +++ b/xen/arch/x86/hvm/hvm.c Tue Aug 03 18:21:41 2010 +0200 @@ -2105,11 +2105,12 @@ int hvm_msr_read_intercept(unsigned int } } - HVMTRACE_3D(MSR_READ, (uint32_t)*msr_content, (uint32_t)(*msr_content >> 32), msr); + HVMTRACE_3D(MSR_READ, msr, (uint32_t)*msr_content, (uint32_t)(*msr_content >> 32)); return X86EMUL_OKAY; gp_fault: + HVMTRACE_3D(MSR_READ, msr, (uint32_t)*msr_content, (uint32_t)(*msr_content >> 32)); hvm_inject_exception(TRAP_gp_fault, 0, 0); return X86EMUL_EXCEPTION; } @@ -2121,8 +2122,6 @@ int hvm_msr_write_intercept(unsigned int uint32_t cpuid[4]; int ret; - HVMTRACE_3D(MSR_WRITE, (uint32_t)msr_content, (uint32_t)(msr_content >> 32), msr); - hvm_cpuid(1, &cpuid[0], &cpuid[1], &cpuid[2], &cpuid[3]); mtrr = !!(cpuid[3] & bitmaskof(X86_FEATURE_MTRR)); @@ -2203,9 +2202,13 @@ int hvm_msr_write_intercept(unsigned int return hvm_funcs.msr_write_intercept(msr, msr_content); } + HVMTRACE_3D(MSR_WRITE, msr, (uint32_t)msr_content, (uint32_t)(msr_content >> 32)); + return X86EMUL_OKAY; gp_fault: + HVMTRACE_3D(MSR_WRITE, msr, (uint32_t)msr_content, (uint32_t)(msr_content >> 32)); + hvm_inject_exception(TRAP_gp_fault, 0, 0); return X86EMUL_EXCEPTION; }