diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c index b19f6ec4ed..80efb84328 100644 --- a/xen/arch/x86/platform_hypercall.c +++ b/xen/arch/x86/platform_hypercall.c @@ -30,6 +30,7 @@ #include #include #include +#include "cpu/mcheck/mce.h" #include "cpu/mtrr/mtrr.h" #include @@ -94,6 +95,9 @@ void check_resource_access(struct resource_access *ra) switch ( entry->u.cmd ) { case XEN_RESOURCE_OP_MSR_READ: + if ( ppin_msr && entry->idx == ppin_msr ) + break; + /* fall through */ case XEN_RESOURCE_OP_MSR_WRITE: if ( entry->idx >> 32 ) ret = -EINVAL;