[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 4/8] x86/svm: handle BU_CFG and BU_CFG2 with cases
On 01/09/2020 11:54, Roger Pau Monne wrote: > @@ -1942,19 +1966,6 @@ static int svm_msr_read_intercept(unsigned int msr, > uint64_t *msr_content) > default: > if ( rdmsr_safe(msr, *msr_content) == 0 ) > break; > - > - 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 > - * in %rdi as a password, which we don't have in > - * rdmsr_safe(). Since we'll ignore the later writes, > - * just use a plausible value here (the reset value from > - * rev10h chips) if the real CPU didn't provide one. */ > - *msr_content = 0x0000000010200020ull; > - break; > - } > - > goto gpf; > } > > @@ -2110,6 +2121,12 @@ static int svm_msr_write_intercept(unsigned int msr, > uint64_t msr_content) > nsvm->ns_msr_hsavepa = msr_content; > break; > > + case MSR_F10_BU_CFG: > + case MSR_F10_BU_CFG2: > + if ( rdmsr_safe(msr, msr_content) ) > + goto gpf; The comment you've moved depends on this not having this behaviour, as you'll now hand #GP back to Win2k8 on its write. Honestly, given that how obsolete both Win2k8 and K10's are, I'm seriously tempted to suggest dropping this workaround entirely. ~Andrew > + break; > + > case MSR_AMD64_TSC_RATIO: > if ( msr_content & TSC_RATIO_RSVD_BITS ) > goto gpf;
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |