[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/microcode: Replace sync_core() with cpuid_eax()
commit b95028e468f73528146d57e68ffca71aa47b4cbe Author: Andy Lutomirski <luto@xxxxxxxxxx> AuthorDate: Fri Dec 9 10:24:07 2016 -0800 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Mar 2 15:53:01 2017 +0000 x86/microcode: Replace sync_core() with cpuid_eax() The Intel microcode driver is using sync_core() to mean "do CPUID with EAX=1". Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx> Acked-by: Borislav Petkov <bp@xxxxxxxxx> [Linux commit 484d0e5c7943644cc46e7308a8f9d83be598f2b9] [Ported to Xen] Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/microcode_intel.c | 9 +++++---- xen/arch/x86/traps.c | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/microcode_intel.c b/xen/arch/x86/microcode_intel.c index 62c2932..ba3971a 100644 --- a/xen/arch/x86/microcode_intel.c +++ b/xen/arch/x86/microcode_intel.c @@ -115,8 +115,9 @@ static int collect_cpu_info(unsigned int cpu_num, struct cpu_signature *csig) } wrmsrl(MSR_IA32_UCODE_REV, 0x0ULL); - /* see notes above for revision 1.07. Apparent chip bug */ - sync_core(); + /* As documented in the SDM: Do a CPUID 1 here */ + cpuid_eax(1); + /* get the current revision from MSR 0x8B */ rdmsrl(MSR_IA32_UCODE_REV, msr_content); csig->rev = (uint32_t)(msr_content >> 32); @@ -297,8 +298,8 @@ static int apply_microcode(unsigned int cpu) wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)uci->mc.mc_intel->bits); wrmsrl(MSR_IA32_UCODE_REV, 0x0ULL); - /* see notes above for revision 1.07. Apparent chip bug */ - sync_core(); + /* As documented in the SDM: Do a CPUID 1 here */ + cpuid_eax(1); /* get the current revision from MSR 0x8B */ rdmsrl(MSR_IA32_UCODE_REV, msr_content); diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 8ba7ed0..13a609b 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -2572,7 +2572,8 @@ static int priv_op_read_msr(unsigned int reg, uint64_t *val, { if ( wrmsr_safe(MSR_IA32_UCODE_REV, 0) ) break; - sync_core(); + /* As documented in the SDM: Do a CPUID 1 here */ + cpuid_eax(1); } goto normal; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |