Kevin Wolf <kw...@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 <kw...@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.