blob: fd6081d07146334ddf85e015588287a73857a954 [file] [log] [blame]
From ba6c22a5b41f021554241fb613a96d8b4336d71b 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 a8c5c9f06b3c..b7a2898cfd61 100644
--- a/virt/kvm/Kconfig
+++ b/virt/kvm/Kconfig
@@ -53,7 +53,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.35.0