Message ID | 20200528153742.274164-2-kwolf@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | monitor: Optionally run handlers in coroutines | expand |
On 5/28/20 10:37 AM, Kevin Wolf wrote: > Most callers actually don't have to rely on cur_mon, but already know > for which monitor they call monitor_set_cpu(). > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > include/monitor/monitor.h | 2 +- > monitor/hmp-cmds.c | 2 +- > monitor/misc.c | 10 +++++----- > 3 files changed, 7 insertions(+), 7 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
Kevin Wolf <kwolf@redhat.com> writes: > Most callers actually don't have to rely on cur_mon, but already know > for which monitor they call monitor_set_cpu(). > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > include/monitor/monitor.h | 2 +- > monitor/hmp-cmds.c | 2 +- > monitor/misc.c | 10 +++++----- > 3 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h > index 1018d754a6..0dcaefd4f9 100644 > --- a/include/monitor/monitor.h > +++ b/include/monitor/monitor.h > @@ -33,7 +33,7 @@ int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) > GCC_FMT_ATTR(2, 0); > int monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3); > void monitor_flush(Monitor *mon); > -int monitor_set_cpu(int cpu_index); > +int monitor_set_cpu(Monitor *mon, int cpu_index); > int monitor_get_cpu_index(void); monitor_set_cpu() now takes a Monitor * argument, while monitor_get_cpu_index() continues to assume cur_mon. Not wrong, but the asymmetry bothers me. Both callers of the latter look like they could easily pass a Monitor * argument. What do you think? > > void monitor_read_command(MonitorHMP *mon, int show_prompt); > diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c > index 9c61e769ca..5e22ee2556 100644 > --- a/monitor/hmp-cmds.c > +++ b/monitor/hmp-cmds.c > @@ -969,7 +969,7 @@ void hmp_cpu(Monitor *mon, const QDict *qdict) > /* XXX: drop the monitor_set_cpu() usage when all HMP commands that > use it are converted to the QAPI */ > cpu_index = qdict_get_int(qdict, "index"); > - if (monitor_set_cpu(cpu_index) < 0) { > + if (monitor_set_cpu(mon, cpu_index) < 0) { > monitor_printf(mon, "invalid CPU index\n"); > } > } > diff --git a/monitor/misc.c b/monitor/misc.c > index f5207cd242..bdf49e49e5 100644 > --- a/monitor/misc.c > +++ b/monitor/misc.c > @@ -130,7 +130,7 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, > cur_mon = &hmp.common; > > if (has_cpu_index) { > - int ret = monitor_set_cpu(cpu_index); > + int ret = monitor_set_cpu(&hmp.common, cpu_index); > if (ret < 0) { > cur_mon = old_mon; > error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index", > @@ -256,7 +256,7 @@ static void monitor_init_qmp_commands(void) > } > > /* Set the current CPU defined by the user. Callers must hold BQL. */ > -int monitor_set_cpu(int cpu_index) > +int monitor_set_cpu(Monitor *mon, int cpu_index) > { > CPUState *cpu; > > @@ -264,8 +264,8 @@ int monitor_set_cpu(int cpu_index) > if (cpu == NULL) { > return -1; > } > - g_free(cur_mon->mon_cpu_path); > - cur_mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu)); > + g_free(mon->mon_cpu_path); > + mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu)); > return 0; > } > > @@ -286,7 +286,7 @@ static CPUState *mon_get_cpu_sync(bool synchronize) > if (!first_cpu) { > return NULL; > } > - monitor_set_cpu(first_cpu->cpu_index); > + monitor_set_cpu(cur_mon, first_cpu->cpu_index); > cpu = first_cpu; > } > assert(cpu != NULL); Patch looks good otherwise.
diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index 1018d754a6..0dcaefd4f9 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -33,7 +33,7 @@ int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0); int monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3); void monitor_flush(Monitor *mon); -int monitor_set_cpu(int cpu_index); +int monitor_set_cpu(Monitor *mon, int cpu_index); int monitor_get_cpu_index(void); void monitor_read_command(MonitorHMP *mon, int show_prompt); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 9c61e769ca..5e22ee2556 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -969,7 +969,7 @@ void hmp_cpu(Monitor *mon, const QDict *qdict) /* XXX: drop the monitor_set_cpu() usage when all HMP commands that use it are converted to the QAPI */ cpu_index = qdict_get_int(qdict, "index"); - if (monitor_set_cpu(cpu_index) < 0) { + if (monitor_set_cpu(mon, cpu_index) < 0) { monitor_printf(mon, "invalid CPU index\n"); } } diff --git a/monitor/misc.c b/monitor/misc.c index f5207cd242..bdf49e49e5 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -130,7 +130,7 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, cur_mon = &hmp.common; if (has_cpu_index) { - int ret = monitor_set_cpu(cpu_index); + int ret = monitor_set_cpu(&hmp.common, cpu_index); if (ret < 0) { cur_mon = old_mon; error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index", @@ -256,7 +256,7 @@ static void monitor_init_qmp_commands(void) } /* Set the current CPU defined by the user. Callers must hold BQL. */ -int monitor_set_cpu(int cpu_index) +int monitor_set_cpu(Monitor *mon, int cpu_index) { CPUState *cpu; @@ -264,8 +264,8 @@ int monitor_set_cpu(int cpu_index) if (cpu == NULL) { return -1; } - g_free(cur_mon->mon_cpu_path); - cur_mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu)); + g_free(mon->mon_cpu_path); + mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu)); return 0; } @@ -286,7 +286,7 @@ static CPUState *mon_get_cpu_sync(bool synchronize) if (!first_cpu) { return NULL; } - monitor_set_cpu(first_cpu->cpu_index); + monitor_set_cpu(cur_mon, first_cpu->cpu_index); cpu = first_cpu; } assert(cpu != NULL);
Most callers actually don't have to rely on cur_mon, but already know for which monitor they call monitor_set_cpu(). Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- include/monitor/monitor.h | 2 +- monitor/hmp-cmds.c | 2 +- monitor/misc.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-)