Message ID | 20200817155757.3372-6-roger.pau@citrix.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | x86: switch default MSR behavior | expand |
On 17/08/2020 16:57, Roger Pau Monne wrote: > Linux PV guests will attempt to read the APIC_BASE MSR, so just report > a default value to make Linux happy. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com> This is a massive layering violation, but we're a decade too late to fix it :(
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c index ff87c7d769..554a95ae8d 100644 --- a/xen/arch/x86/pv/emul-priv-op.c +++ b/xen/arch/x86/pv/emul-priv-op.c @@ -872,6 +872,13 @@ static int read_msr(unsigned int reg, uint64_t *val, switch ( reg ) { + case MSR_APIC_BASE: + /* Linux PV guests will attempt to read APIC_BASE. */ + *val = APIC_BASE_ENABLE | APIC_DEFAULT_PHYS_BASE; + if ( !curr->vcpu_id ) + *val |= APIC_BASE_BSP; + return X86EMUL_OKAY; + case MSR_FS_BASE: if ( is_pv_32bit_domain(currd) ) break;
Linux PV guests will attempt to read the APIC_BASE MSR, so just report a default value to make Linux happy. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- xen/arch/x86/pv/emul-priv-op.c | 7 +++++++ 1 file changed, 7 insertions(+)