vl: change runstate only if new state is different from current state
Previously, qemu will abort at following scenario: (qemu) stop (qemu) system_reset (qemu) system_reset (qemu) 2016-04-13T20:54:38.979158Z qemu-system-x86_64: invalid runstate transition: 'prelaunch' -> 'prelaunch' Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1460604352-18630-1-git-send-email-lizhijian@cn.fujitsu.com> Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
ed1263c363
commit
e92a2d9cb3
4
vl.c
4
vl.c
@ -690,6 +690,10 @@ void runstate_set(RunState new_state)
|
|||||||
{
|
{
|
||||||
assert(new_state < RUN_STATE__MAX);
|
assert(new_state < RUN_STATE__MAX);
|
||||||
|
|
||||||
|
if (current_run_state == new_state) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!runstate_valid_transitions[current_run_state][new_state]) {
|
if (!runstate_valid_transitions[current_run_state][new_state]) {
|
||||||
error_report("invalid runstate transition: '%s' -> '%s'",
|
error_report("invalid runstate transition: '%s' -> '%s'",
|
||||||
RunState_lookup[current_run_state],
|
RunState_lookup[current_run_state],
|
||||||
|
Loading…
Reference in New Issue
Block a user