qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 08/15] target/i386: Added consistency checks for CR4


From: Daniel P . Berrangé
Subject: Re: [PULL 08/15] target/i386: Added consistency checks for CR4
Date: Tue, 31 Aug 2021 18:35:05 +0100
User-agent: Mutt/2.0.7 (2021-05-04)

On Tue, Aug 31, 2021 at 06:03:04PM +0100, Richard W.M. Jones wrote:
> On Thu, Jul 22, 2021 at 05:36:05PM +0200, Paolo Bonzini wrote:
> > From: Lara Lazier <laramglazier@gmail.com>
> > 
> > All MBZ bits in CR4 must be zero. (APM2 15.5)
> > Added reserved bitmask and added checks in both
> > helper_vmrun and helper_write_crN.
> > 
> > Signed-off-by: Lara Lazier <laramglazier@gmail.com>
> > Message-Id: <20210721152651.14683-2-laramglazier@gmail.com>
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> 
> FYI this commit causes a regression with -cpu max (regression analyzed
> by Daniel Berrange).  See:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1999700
> 
> Rich.
> 
> >  target/i386/cpu.h                    | 39 ++++++++++++++++++++++++++++
> >  target/i386/tcg/sysemu/misc_helper.c |  3 +++
> >  target/i386/tcg/sysemu/svm_helper.c  |  9 ++++---
> >  3 files changed, 48 insertions(+), 3 deletions(-)
> > 
> > diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> > index 5d98a4e7c0..1f7e8d7f0a 100644
> > --- a/target/i386/cpu.h
> > +++ b/target/i386/cpu.h
> > @@ -240,6 +240,7 @@ typedef enum X86Seg {
> >  #define CR4_OSFXSR_SHIFT 9
> >  #define CR4_OSFXSR_MASK (1U << CR4_OSFXSR_SHIFT)
> >  #define CR4_OSXMMEXCPT_MASK  (1U << 10)
> > +#define CR4_UMIP_MASK   (1U << 11)
> >  #define CR4_LA57_MASK   (1U << 12)
> >  #define CR4_VMXE_MASK   (1U << 13)
> >  #define CR4_SMXE_MASK   (1U << 14)
> > @@ -251,6 +252,14 @@ typedef enum X86Seg {
> >  #define CR4_PKE_MASK   (1U << 22)
> >  #define CR4_PKS_MASK   (1U << 24)
> >  
> > +#define CR4_RESERVED_MASK \
> > +(~(target_ulong)(CR4_VME_MASK | CR4_PVI_MASK | CR4_TSD_MASK \
> > +                | CR4_DE_MASK | CR4_PSE_MASK | CR4_PAE_MASK \
> > +                | CR4_MCE_MASK | CR4_PGE_MASK | CR4_PCE_MASK \
> > +                | CR4_OSFXSR_MASK | CR4_OSXMMEXCPT_MASK |CR4_UMIP_MASK \
> > +                | CR4_FSGSBASE_MASK | CR4_PCIDE_MASK | CR4_OSXSAVE_MASK \
> > +                | CR4_SMEP_MASK | CR4_SMAP_MASK | CR4_PKE_MASK | 
> > CR4_PKS_MASK))
> > +

This is missing  CR4_LA57_MASK, and adding that makes Fedora kernels
boot again.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]