[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 4/5] x86/msr: introduce guest_rdmsr()
> From: Sergey Dyasli [mailto:sergey.dyasli@xxxxxxxxxx] > Sent: Wednesday, August 30, 2017 6:35 PM > > The new function is responsible for handling RDMSR from both HVM and > PV > guests. Currently it handles only 2 MSRs: > > MSR_INTEL_PLATFORM_INFO > MSR_INTEL_MISC_FEATURES_ENABLES > > It has a different behaviour compared to the old MSR handlers: if MSR > is being handled by guest_rdmsr() then RDMSR will either succeed (if > a guest is allowed to access it based on its MSR policy) or produce > a GP fault. A guest will never see a H/W value of some MSR unknown to > this function. > > guest_rdmsr() unifies and replaces the handling code from > vmx_msr_read_intercept() and priv_op_read_msr(). > > Signed-off-by: Sergey Dyasli <sergey.dyasli@xxxxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>, with a small comment: > --- a/xen/arch/x86/hvm/hvm.c > +++ b/xen/arch/x86/hvm/hvm.c > @@ -3334,11 +3334,16 @@ int hvm_msr_read_intercept(unsigned int msr, > uint64_t *msr_content) > struct vcpu *v = current; > struct domain *d = v->domain; > uint64_t *var_range_base, *fixed_range_base; > - int ret = X86EMUL_OKAY; > + int ret; > > var_range_base = (uint64_t *)v->arch.hvm_vcpu.mtrr.var_ranges; > fixed_range_base = (uint64_t *)v->arch.hvm_vcpu.mtrr.fixed_ranges; > > + if ( (ret = guest_rdmsr(v, msr, msr_content)) != > X86EMUL_UNHANDLEABLE ) > + return ret; > + else > + ret = X86EMUL_OKAY; > + no need to add 'else' here. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |