aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2020-01-09 12:07:30 +1100
committerRichard Henderson <richard.henderson@linaro.org>2020-01-21 14:18:24 -1000
commit755ee1f301b30d2cd248e162e3a438473eed3767 (patch)
treead3359671ec8341a020da5692016db6ece043099 /vl.c
parenta024b0906779e4355b6d04f67c01d1bc0dcc2699 (diff)
downloadqemu-755ee1f301b30d2cd248e162e3a438473eed3767.zip
qemu-755ee1f301b30d2cd248e162e3a438473eed3767.tar.gz
qemu-755ee1f301b30d2cd248e162e3a438473eed3767.tar.bz2
vl: Only choose enabled accelerators in configure_accelerators
By choosing "tcg:kvm" when kvm is not enabled, we generate an incorrect warning: "invalid accelerator kvm". At the same time, use g_str_has_suffix rather than open-coding the same operation. Presumably the inverse is also true with --disable-tcg. Fixes: 28a0961757fc Acked-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/vl.c b/vl.c
index 1e5e9b9..4c50338 100644
--- a/vl.c
+++ b/vl.c
@@ -2766,21 +2766,26 @@ static void configure_accelerators(const char *progname)
if (accel == NULL) {
/* Select the default accelerator */
- if (!accel_find("tcg") && !accel_find("kvm")) {
- error_report("No accelerator selected and"
- " no default accelerator available");
- exit(1);
- } else {
- int pnlen = strlen(progname);
- if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) {
+ bool have_tcg = accel_find("tcg");
+ bool have_kvm = accel_find("kvm");
+
+ if (have_tcg && have_kvm) {
+ if (g_str_has_suffix(progname, "kvm")) {
/* If the program name ends with "kvm", we prefer KVM */
accel = "kvm:tcg";
} else {
accel = "tcg:kvm";
}
+ } else if (have_kvm) {
+ accel = "kvm";
+ } else if (have_tcg) {
+ accel = "tcg";
+ } else {
+ error_report("No accelerator selected and"
+ " no default accelerator available");
+ exit(1);
}
}
-
accel_list = g_strsplit(accel, ":", 0);
for (tmp = accel_list; *tmp; tmp++) {