From 65df95516898f077cda44ace15e45e4c777fdaf3 Mon Sep 17 00:00:00 2001
From: Michael Pratt <mpratt@google.com>
Date: Tue, 1 May 2018 22:17:13 -0700
Subject: 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
---
 pkg/sentry/platform/ring0/kernel_amd64.go | 2 +-
 pkg/sentry/platform/ring0/x86.go          | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

(limited to 'pkg/sentry')

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
-- 
cgit v1.2.3