aboutsummaryrefslogtreecommitdiffstats
path: root/vl-android.c
diff options
context:
space:
mode:
Diffstat (limited to 'vl-android.c')
-rw-r--r--vl-android.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/vl-android.c b/vl-android.c
index 47b802b..0a64d0d 100644
--- a/vl-android.c
+++ b/vl-android.c
@@ -195,6 +195,9 @@
#include "audio/audio.h"
#include "migration.h"
#include "kvm.h"
+#ifdef CONFIG_KVM
+#include "kvm-android.h"
+#endif
#include "balloon.h"
#include "android/hw-lcd.h"
#include "android/boot-properties.h"
@@ -4047,6 +4050,11 @@ int main(int argc, char **argv, char **envp)
android_hw_control_init();
android_net_pipes_init();
+#ifdef CONFIG_KVM
+ /* By default, force auto-detection for kvm */
+ kvm_allowed = -1;
+#endif
+
optind = 1;
for(;;) {
if (optind >= argc)
@@ -4524,16 +4532,14 @@ int main(int argc, char **argv, char **envp)
kqemu_allowed = 2;
break;
#endif
-#ifdef TARGET_I386
#ifdef CONFIG_KVM
case QEMU_OPTION_enable_kvm:
kvm_allowed = 1;
-#ifdef CONFIG_KQEMU
- kqemu_allowed = 0;
-#endif
break;
-#endif
-#endif /* TARGET_I386 */
+ case QEMU_OPTION_disable_kvm:
+ kvm_allowed = 0;
+ break;
+#endif /* CONFIG_KVM */
case QEMU_OPTION_usb:
usb_enabled = 1;
break;
@@ -5285,6 +5291,12 @@ int main(int argc, char **argv, char **envp)
serial_hds_add_at(1, "android-qemud");
stralloc_add_str(kernel_params, " android.qemud=ttyS1");
+#if defined(CONFIG_KVM)
+ if (kvm_allowed < 0) {
+ kvm_allowed = kvm_check_allowed();
+ }
+#endif
+
#if defined(CONFIG_KVM) && defined(CONFIG_KQEMU)
if (kvm_allowed && kqemu_allowed) {
PANIC(