[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH 03/22] x86/msr: always allow a pinned Dom0 to read any unknown MSR
From: Edwin Török <edvin.torok@xxxxxxxxxx> This can be useful if you realize you have to inspect the value of an MSR in production, without having to change into a new Xen first that handles the MSR. E.g. SMI count didn't use to be explicitly allowed in the past (it now is, see a previous commit), but there could be other MSRs that are useful when tracking down issues. Backport: 4.15+ Signed-off-by: Edwin Török <edvin.torok@xxxxxxxxxx> --- xen/arch/x86/hvm/svm/svm.c | 3 +++ xen/arch/x86/hvm/vmx/vmx.c | 3 +++ xen/arch/x86/pv/emul-priv-op.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 24c417ca71..45f8e1ffd1 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1933,6 +1933,9 @@ static int cf_check svm_msr_read_intercept( break; default: + if ( is_hwdom_pinned_vcpu(v) && !rdmsr_safe(msr, *msr_content) ) + break; + if ( d->arch.msr_relaxed && !rdmsr_safe(msr, tmp) ) { *msr_content = 0; diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 1edc7f1e91..f6e5123f66 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -3377,6 +3377,9 @@ static int cf_check vmx_msr_read_intercept( if ( vmx_read_guest_msr(curr, msr, msr_content) == 0 ) break; + if ( is_hwdom_pinned_vcpu(curr) && !rdmsr_safe(msr, *msr_content) ) + return X86EMUL_OKAY; + if ( is_last_branch_msr(msr) ) { *msr_content = 0; diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c index 0d9f84f458..978ae679a2 100644 --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -985,6 +985,9 @@ static int cf_check read_msr( } /* fall through */ default: + if ( is_hwdom_pinned_vcpu(curr) && !rdmsr_safe(reg, *val) ) + return X86EMUL_OKAY; + if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, tmp) ) { *val = 0; -- 2.41.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |