blob: 701c00f9d831e411734684442b3155358ee03309 [file] [log] [blame]
From 9ccdd7a73ca000427ab87b70167c4256c55fb1be Mon Sep 17 00:00:00 2001
From: Daniel Verkamp <dverkamp@chromium.org>
Date: Thu, 21 Nov 2019 11:18:20 -0800
Subject: [PATCH] CHROMIUM: Revert "KVM: arm64: Prevent KVM_COMPAT from being
selected"
Re-enable KVM support for 32-bit processes on arm64.
Technically, the KVM compat ioctl is broken on aarch64 - the compat
handler does not do any conversion, so 32-bit processes built against
the normal 32-bit arm uapi headers won't work at all. However, for
crosvm, we use the aarch64 structures even though we are running as a
32-bit process. This works today (aside from KVM_COMPAT being disabled
in 4.17+) because of the lack of compat ioctl conversion - the
structures are passed through to the normal non-compat ioctl handler
directly. In order to get crosvm running again on these newer kernels,
re-enabling CONFIG_KVM_COMPAT is sufficient, but we consider this to be
a short-term fix; a better long-term solution would be to compile crosvm
as a native 64-bit process so that it does not need the compat ioctl.
This reverts commit 37b65db85f9b2fc98267eee4a18d7506492e6e8c.
BUG=chromium:1026671
TEST=Install and boot Linux (Crostini) on kukui
Change-Id: I54f9d8d662609a6f5b057aaa6fd2fd4f0dd995c5
Signed-off-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1965511
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Tested-by: Stephen Boyd <swboyd@chromium.org>
(cherry picked from commit 633c7d2689e95b015ee394b9d27770c6f2c7e196)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2693753
Auto-Submit: Stephen Boyd <swboyd@chromium.org>
---
virt/kvm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt/kvm/Kconfig b/virt/kvm/Kconfig
index 800f9470e36b1ca6d522c65c9a1d572ba7575280..952d713e542121d8bacb30807b3498f54d999524 100644
--- a/virt/kvm/Kconfig
+++ b/virt/kvm/Kconfig
@@ -67,7 +67,7 @@ config KVM_GENERIC_DIRTYLOG_READ_PROTECT
config KVM_COMPAT
def_bool y
- depends on KVM && COMPAT && !(S390 || ARM64 || RISCV)
+ depends on KVM && COMPAT && !(S390 || RISCV)
config HAVE_KVM_IRQ_BYPASS
bool
--
2.38.1.584.g0f3c55d4c2-goog