Disallow colons in the parameter of "-accel"

Everybody who used something like "-machine accel=kvm:tcg" in the past
might be tempted to specify a similar list with the -accel parameter,
too, for example "-accel kvm:tcg". However, this is not how this
options is thought to be used, since each "-accel" should only take care
of one specific accelerator.

In the long run, we really should rework the "-accel" code completely,
so that it does not set "-machine accel=..." anymore internally, but
is completely independent from "-machine". For the short run, let's
make sure that users cannot use "-accel xyz:tcg", so that we avoid
that we have to deal with such cases in the wild later.

Message-Id: <20190930123505.11607-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2019-09-23 14:00:29 +02:00
parent e423455c4f
commit 3d5e90a50b
2 changed files with 6 additions and 1 deletions

View File

@ -120,7 +120,7 @@ static void test_cdboot(gconstpointer data)
{
QTestState *qts;
qts = qtest_initf("-accel kvm:tcg -no-shutdown %s%s", (const char *)data,
qts = qtest_initf("-M accel=kvm:tcg -no-shutdown %s%s", (const char *)data,
isoimage);
boot_sector_test(qts);
qtest_quit(qts);

5
vl.c
View File

@ -3554,6 +3554,11 @@ int main(int argc, char **argv, char **envp)
g_slist_free(accel_list);
exit(0);
}
if (optarg && strchr(optarg, ':')) {
error_report("Don't use ':' with -accel, "
"use -M accel=... for now instead");
exit(1);
}
opts = qemu_opts_create(qemu_find_opts("machine"), NULL,
false, &error_abort);
qemu_opt_set(opts, "accel", optarg, &error_abort);