Message ID | 20220223090706.4888-4-damien.hedde@greensocs.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Initial support for machine creation via QMP | expand |
On 23/2/22 10:06, Damien Hedde wrote: > phase_until() now supports the following transitions: > + accel-created -> machine-initialized > + machine-initialized -> machine-ready > > As a consequence we can now support the use of qmp_exit_preconfig() > from phases _accel-created_ and _machine-initialized_. > > This commit is a preparation to support cold plugging a device > using qapi (which will be introduced in a following commit). For this > we need fine grain control of the phase. > > Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> > --- > softmmu/vl.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
diff --git a/softmmu/vl.c b/softmmu/vl.c index 5689d0be88..50337d68b9 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2737,8 +2737,8 @@ static void qemu_machine_creation_done(void) void qmp_x_exit_preconfig(Error **errp) { - if (phase_check(PHASE_MACHINE_INITIALIZED)) { - error_setg(errp, "The command is permitted only before machine initialization"); + if (phase_check(PHASE_MACHINE_READY)) { + error_setg(errp, "The command is permitted only before machine is ready"); return; } phase_until(PHASE_MACHINE_READY, errp); @@ -2759,7 +2759,17 @@ bool phase_until(MachineInitPhase phase, Error **errp) case PHASE_ACCEL_CREATED: qemu_init_board(); /* We are now in PHASE_MACHINE_INITIALIZED. */ + /* + * Handle CLI devices now in order leave the function in a state + * where we can cold plug devices with QMP. The following call + * handles the CLI options: + * + -fw_cfg (has side effects on device cold plug) + * + -device + */ qemu_create_cli_devices(); + break; + + case PHASE_MACHINE_INITIALIZED: /* * At this point all CLI options are handled apart: * + -S (autostart)
phase_until() now supports the following transitions: + accel-created -> machine-initialized + machine-initialized -> machine-ready As a consequence we can now support the use of qmp_exit_preconfig() from phases _accel-created_ and _machine-initialized_. This commit is a preparation to support cold plugging a device using qapi (which will be introduced in a following commit). For this we need fine grain control of the phase. Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> --- softmmu/vl.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)