Jan Beulich
2012-Mar-15 12:34 UTC
[PATCH] svm: amend c/s 24990:322300fd2ebd (fake BU_CFG MSR on AMD revF)
Let''s restrict such a hack to the known affected family. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -1505,7 +1505,7 @@ static int svm_msr_read_intercept(unsign if ( rdmsr_safe(msr, *msr_content) == 0 ) break; - if ( msr == MSR_F10_BU_CFG ) + if ( boot_cpu_data.x86 == 0xf && msr == MSR_F10_BU_CFG ) { /* Win2k8 x64 reads this MSR on revF chips, where it * wasn''t publically available; it uses a magic constant _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Keir Fraser
2012-Mar-15 13:54 UTC
Re: [PATCH] svm: amend c/s 24990:322300fd2ebd (fake BU_CFG MSR on AMD revF)
On 15/03/2012 12:34, "Jan Beulich" <JBeulich@suse.com> wrote:> Let''s restrict such a hack to the known affected family. > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -1505,7 +1505,7 @@ static int svm_msr_read_intercept(unsign > if ( rdmsr_safe(msr, *msr_content) == 0 ) > break; > > - if ( msr == MSR_F10_BU_CFG ) > + if ( boot_cpu_data.x86 == 0xf && msr == MSR_F10_BU_CFG ) > { > /* Win2k8 x64 reads this MSR on revF chips, where it > * wasn''t publically available; it uses a magic constant > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
George Dunlap
2012-Mar-15 14:00 UTC
Re: [PATCH] svm: amend c/s 24990:322300fd2ebd (fake BU_CFG MSR on AMD revF)
On Thu, 2012-03-15 at 12:34 +0000, Jan Beulich wrote:> Let''s restrict such a hack to the known affected family. > > Signed-off-by: Jan Beulich <jbeulich@suse.com>I haven''t tested it, but in principle: Acked-by: George Dunlap <george.dunlap@eu.citrix.com> Thanks Jan. I''ll see if I can get this back-ported to the XS patchqueue, so we can test to make sure it works on all the hardware we have available. -George> > --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -1505,7 +1505,7 @@ static int svm_msr_read_intercept(unsign > if ( rdmsr_safe(msr, *msr_content) == 0 ) > break; > > - if ( msr == MSR_F10_BU_CFG ) > + if ( boot_cpu_data.x86 == 0xf && msr == MSR_F10_BU_CFG ) > { > /* Win2k8 x64 reads this MSR on revF chips, where it > * wasn''t publically available; it uses a magic constant > > >