summaryrefslogtreecommitdiffstats
path: root/softmmu
diff options
context:
space:
mode:
Diffstat (limited to 'softmmu')
-rw-r--r--softmmu/vl.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 5a11a62f78..254ee5e525 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -165,8 +165,9 @@ bool boot_strict;
uint8_t *boot_splash_filedata;
int only_migratable; /* turn it off unless user states otherwise */
bool wakeup_suspend_enabled;
-
int icount_align_option;
+static const char *qtest_chrdev;
+static const char *qtest_log;
/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the
* little-endian "wire format" described in the SMBIOS 2.6 specification.
@@ -2713,10 +2714,15 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
AccelClass *ac = accel_find(acc);
AccelState *accel;
int ret;
+ bool qtest_with_kvm;
+
+ qtest_with_kvm = g_str_equal(acc, "kvm") && qtest_chrdev != NULL;
if (!ac) {
*p_init_failed = true;
- error_report("invalid accelerator %s", acc);
+ if (!qtest_with_kvm) {
+ error_report("invalid accelerator %s", acc);
+ }
return 0;
}
accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac)));
@@ -2728,8 +2734,9 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
ret = accel_init_machine(accel, current_machine);
if (ret < 0) {
*p_init_failed = true;
- error_report("failed to initialize %s: %s",
- acc, strerror(-ret));
+ if (!qtest_with_kvm || ret != -ENOENT) {
+ error_report("failed to initialize %s: %s", acc, strerror(-ret));
+ }
return 0;
}
@@ -2800,7 +2807,7 @@ static void configure_accelerators(const char *progname)
exit(1);
}
- if (init_failed) {
+ if (init_failed && !qtest_chrdev) {
AccelClass *ac = ACCEL_GET_CLASS(current_accel());
error_report("falling back to %s", ac->name);
}
@@ -2870,8 +2877,6 @@ void qemu_init(int argc, char **argv, char **envp)
MachineClass *machine_class;
const char *cpu_option;
const char *vga_model = NULL;
- const char *qtest_chrdev = NULL;
- const char *qtest_log = NULL;
const char *incoming = NULL;
bool userconfig = true;
bool nographic = false;