| 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 |
| |