On 15/08/2025 9:41 pm, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index 530b9eb39abc..9c6b8c291d6e 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -329,6 +329,7 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int
> index_msb)
> void __init early_cpu_init(bool verbose)
> {
> struct cpuinfo_x86 *c = &boot_cpu_data;
> + uint64_t val;
> u32 eax, ebx, ecx, edx;
>
> c->x86_cache_alignment = 32;
> @@ -412,10 +413,11 @@ void __init early_cpu_init(bool verbose)
> &c->x86_capability[FEATURESET_7c0],
> &c->x86_capability[FEATURESET_7d0]);
>
> - if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
> - rdmsr(MSR_ARCH_CAPABILITIES,
> - c->x86_capability[FEATURESET_m10Al],
> - c->x86_capability[FEATURESET_m10Ah]);
> + if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability)) {
> + val = rdmsr(MSR_ARCH_CAPABILITIES);
> + c->x86_capability[FEATURESET_m10Al] = val;
> + c->x86_capability[FEATURESET_m10Al] = val >> 32;
This is a typo. Fixed locally.
~Andrew