From: Andrew Cooper Date: Thu, 2 Mar 2017 19:58:20 +0000 (+0000) Subject: x86/cpuid: Fix booting on AMD Phenom 6-core platform X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~2572 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6d55c0c316357a412526b9dccd45d3c3abb75227;p=xen.git x86/cpuid: Fix booting on AMD Phenom 6-core platform c/s 5cecf60f4 "x86/cpuid: Handle leaf 0x1 in guest_cpuid()" causes Linux 4.10 to crash during boot. It turns out to be because of the reported apic_id, which was altered to be more consistent across guests. Revert back to the previous behaviour, by limiting the apic_id adjustment to HVM guests only. Whomever gets to fixes topology representation is going to have a lot of fun with non-power-of-2 AMD boxes. Reported-by: Sander Eikelenboom Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich Tested-by: Sander Eikelenboom --- diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c index 0dd35dc256..d6f6b88bda 100644 --- a/xen/arch/x86/cpuid.c +++ b/xen/arch/x86/cpuid.c @@ -749,7 +749,8 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf, case 0x1: /* TODO: Rework topology logic. */ res->b &= 0x00ffffffu; - res->b |= (v->vcpu_id * 2) << 24; + if ( has_hvm_container_domain(d) ) + res->b |= (v->vcpu_id * 2) << 24; /* TODO: Rework vPMU control in terms of toolstack choices. */ if ( vpmu_available(v) &&