[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] vl: don't use RUN_STATE_PRECONFIG unless --preconfi
From: |
Daniel P . Berrangé |
Subject: |
[Qemu-devel] [PATCH] vl: don't use RUN_STATE_PRECONFIG unless --preconfig is given |
Date: |
Mon, 4 Jun 2018 11:27:52 +0100 |
The RUN_STATE_PRECONFIG state is not supposed to be reachable unless the
--preconfig argument is given to QEMU, but when it was introduced in:
commit 047f7038f586d2150f16c6d9ba9cfd0479f0f6ac
Author: Igor Mammedov <address@hidden>
Date: Fri May 11 19:24:43 2018 +0200
cli: add --preconfig option
The global 'current_run_state' variable was changed to have an initial
value of RUN_STATE_PRECONFIG regardless of whether --preconfig is given.
It then relies on the main loop to toggle it back to RUN_STATE_PRELAUNCH
when --preconfig is not given. This is racy because it means that there
is a window where QEMU is in RUN_STATE_PRECONFIG despite --preconfig not
being given. This can be seen with the failure:
$ echo | x86_64-softmmu/qemu-system-x86_64 -monitor stdio
QEMU 2.12.50 monitor - type 'help' for more information
(qemu)
HMP not available in preconfig state, use QMP instead
Signed-off-by: Daniel P. Berrangé <address@hidden>
---
vl.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vl.c b/vl.c
index 06031715ac..f776d65801 100644
--- a/vl.c
+++ b/vl.c
@@ -561,7 +561,7 @@ static int default_driver_check(void *opaque, QemuOpts
*opts, Error **errp)
/***********************************************************/
/* QEMU state */
-static RunState current_run_state = RUN_STATE_PRECONFIG;
+static RunState current_run_state = RUN_STATE_PRELAUNCH;
/* We use RUN_STATE__MAX but any invalid value will do */
static RunState vmstop_requested = RUN_STATE__MAX;
@@ -3572,6 +3572,7 @@ int main(int argc, char **argv, char **envp)
}
break;
case QEMU_OPTION_preconfig:
+ current_run_state = RUN_STATE_PRECONFIG;
preconfig_exit_requested = false;
break;
case QEMU_OPTION_enable_kvm:
--
2.17.0
- [Qemu-devel] [PATCH] vl: don't use RUN_STATE_PRECONFIG unless --preconfig is given,
Daniel P . Berrangé <=