mirror of https://github.com/xemu-project/xemu.git
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: 28a0961757
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>
This commit is contained in:
parent
a024b09067
commit
755ee1f301
21
vl.c
21
vl.c
|
@ -2766,21 +2766,26 @@ static void configure_accelerators(const char *progname)
|
||||||
|
|
||||||
if (accel == NULL) {
|
if (accel == NULL) {
|
||||||
/* Select the default accelerator */
|
/* Select the default accelerator */
|
||||||
if (!accel_find("tcg") && !accel_find("kvm")) {
|
bool have_tcg = accel_find("tcg");
|
||||||
error_report("No accelerator selected and"
|
bool have_kvm = accel_find("kvm");
|
||||||
" no default accelerator available");
|
|
||||||
exit(1);
|
if (have_tcg && have_kvm) {
|
||||||
} else {
|
if (g_str_has_suffix(progname, "kvm")) {
|
||||||
int pnlen = strlen(progname);
|
|
||||||
if (pnlen >= 3 && g_str_equal(&progname[pnlen - 3], "kvm")) {
|
|
||||||
/* If the program name ends with "kvm", we prefer KVM */
|
/* If the program name ends with "kvm", we prefer KVM */
|
||||||
accel = "kvm:tcg";
|
accel = "kvm:tcg";
|
||||||
} else {
|
} else {
|
||||||
accel = "tcg:kvm";
|
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);
|
accel_list = g_strsplit(accel, ":", 0);
|
||||||
|
|
||||||
for (tmp = accel_list; *tmp; tmp++) {
|
for (tmp = accel_list; *tmp; tmp++) {
|
||||||
|
|
Loading…
Reference in New Issue