diff options
author | Michael Pratt <mpratt@google.com> | 2018-05-01 22:17:13 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-05-01 22:17:47 -0700 |
commit | 65df95516898f077cda44ace15e45e4c777fdaf3 (patch) | |
tree | 9d9cc3bb280d09d93949c76578ca160d64ee4ee0 | |
parent | 3d3deef573a54e031cb98038b9f617f5fac31044 (diff) |
Set LMA in EFER
As of Linux 4.15 (f29810335965ac1f7bcb501ee2af5f039f792416
KVM/x86: Check input paging mode when cs.l is set), KVM validates that
LMA is set along with LME.
PiperOrigin-RevId: 195047401
Change-Id: I8b43d8f758a85b1f58ccbd747dcacd4056ef3f66
-rw-r--r-- | pkg/sentry/platform/ring0/kernel_amd64.go | 2 | ||||
-rw-r--r-- | pkg/sentry/platform/ring0/x86.go | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/pkg/sentry/platform/ring0/kernel_amd64.go b/pkg/sentry/platform/ring0/kernel_amd64.go index c82613a9c..76ba65b3f 100644 --- a/pkg/sentry/platform/ring0/kernel_amd64.go +++ b/pkg/sentry/platform/ring0/kernel_amd64.go @@ -149,7 +149,7 @@ func (c *CPU) CR4() uint64 { // //go:nosplit func (c *CPU) EFER() uint64 { - return _EFER_LME | _EFER_SCE | _EFER_NX + return _EFER_LME | _EFER_LMA | _EFER_SCE | _EFER_NX } // IsCanonical indicates whether addr is canonical per the amd64 spec. diff --git a/pkg/sentry/platform/ring0/x86.go b/pkg/sentry/platform/ring0/x86.go index e16f6c599..74b140066 100644 --- a/pkg/sentry/platform/ring0/x86.go +++ b/pkg/sentry/platform/ring0/x86.go @@ -46,6 +46,7 @@ const ( _EFER_SCE = 0x001 _EFER_LME = 0x100 + _EFER_LMA = 0x400 _EFER_NX = 0x800 _MSR_STAR = 0xc0000081 |