summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2018-05-01 22:17:13 -0700
committerShentubot <shentubot@google.com>2018-05-01 22:17:47 -0700
commit65df95516898f077cda44ace15e45e4c777fdaf3 (patch)
tree9d9cc3bb280d09d93949c76578ca160d64ee4ee0
parent3d3deef573a54e031cb98038b9f617f5fac31044 (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.go2
-rw-r--r--pkg/sentry/platform/ring0/x86.go1
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