Commit a049cf7e authored by Marc Zyngier's avatar Marc Zyngier
Browse files

Merge branch kvm-arm64/misc-5.16 into kvmarm-master/next



* kvm-arm64/misc-5.16:
  : .
  : - Allow KVM to be disabled from the command-line
  : - Clean up CONFIG_KVM vs CONFIG_HAVE_KVM
  : .
  KVM: arm64: Depend on HAVE_KVM instead of OF
  KVM: arm64: Unconditionally include generic KVM's Kconfig
  KVM: arm64: Allow KVM to be disabled from the command line

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parents 15f9017c e26bb75a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2365,6 +2365,8 @@
	kvm-arm.mode=
			[KVM,ARM] Select one of KVM/arm64's modes of operation.

			none: Forcefully disable KVM.

			nvhe: Standard nVHE-based mode, without support for
			      protected guests.

+1 −0
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@ config ARM64
	select HAVE_GCC_PLUGINS
	select HAVE_HW_BREAKPOINT if PERF_EVENTS
	select HAVE_IRQ_TIME_ACCOUNTING
	select HAVE_KVM
	select HAVE_NMI
	select HAVE_PATA_PLATFORM
	select HAVE_PERF_EVENTS
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@
enum kvm_mode {
	KVM_MODE_DEFAULT,
	KVM_MODE_PROTECTED,
	KVM_MODE_NONE,
};
enum kvm_mode kvm_get_mode(void);

+3 −7
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#

source "virt/lib/Kconfig"
source "virt/kvm/Kconfig"

menuconfig VIRTUALIZATION
	bool "Virtualization"
@@ -19,7 +20,7 @@ if VIRTUALIZATION

menuconfig KVM
	bool "Kernel-based Virtual Machine (KVM) support"
	depends on OF
	depends on HAVE_KVM
	select MMU_NOTIFIER
	select PREEMPT_NOTIFIERS
	select HAVE_KVM_CPU_RELAX_INTERCEPT
@@ -43,12 +44,9 @@ menuconfig KVM

	  If unsure, say N.

if KVM

source "virt/kvm/Kconfig"

config NVHE_EL2_DEBUG
	bool "Debug mode for non-VHE EL2 object"
	depends on KVM
	help
	  Say Y here to enable the debug mode for the non-VHE KVM EL2 object.
	  Failure reports will BUG() in the hypervisor. This is intended for
@@ -56,6 +54,4 @@ config NVHE_EL2_DEBUG

	  If unsure, say N.

endif # KVM

endif # VIRTUALIZATION
+13 −1
Original line number Diff line number Diff line
@@ -2087,6 +2087,11 @@ int kvm_arch_init(void *opaque)
		return -ENODEV;
	}

	if (kvm_get_mode() == KVM_MODE_NONE) {
		kvm_info("KVM disabled from command line\n");
		return -ENODEV;
	}

	in_hyp_mode = is_kernel_in_hyp_mode();

	if (cpus_have_final_cap(ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE) ||
@@ -2160,8 +2165,15 @@ static int __init early_kvm_mode_cfg(char *arg)
		return 0;
	}

	if (strcmp(arg, "nvhe") == 0 && !WARN_ON(is_kernel_in_hyp_mode()))
	if (strcmp(arg, "nvhe") == 0 && !WARN_ON(is_kernel_in_hyp_mode())) {
		kvm_mode = KVM_MODE_DEFAULT;
		return 0;
	}

	if (strcmp(arg, "none") == 0) {
		kvm_mode = KVM_MODE_NONE;
		return 0;
	}

	return -EINVAL;
}