zhugh <zhugh.f...@cn.fujitsu.com> writes: > On Fri, 2014-09-19 at 11:34 -0400, Luiz Capitulino wrote: >> On Fri, 19 Sep 2014 15:30:19 +0200 >> Igor Mammedov <imamm...@redhat.com> wrote: >> >> > On Thu, 18 Sep 2014 16:09:32 +0800 >> > zhugh <zhugh.f...@cn.fujitsu.com> wrote: >> > >> > > Hi, >> > > >> > > Could anyone help to review this patch? >> > > If there was no problem, could help to merge it? >> > > >> > > thanks! >> > > zhu >> > > >> > > On Mon, 2014-09-15 at 19:31 +0800, Zhu Guihua wrote: >> > > > Provides HMP equivalent of QMP query-memory-devices command. >> > > > >> > > > Signed-off-by: Zhu Guihua <zhugh.f...@cn.fujitsu.com> [...] >> > > > diff --git a/hmp.c b/hmp.c >> > > > index 40a90da..feefeb4 100644 >> > > > --- a/hmp.c >> > > > +++ b/hmp.c >> > > > @@ -1718,3 +1718,41 @@ void hmp_info_memdev(Monitor *mon, const QDict >> > > > *qdict) >> > > > >> > > > qapi_free_MemdevList(memdev_list); >> > > > } >> > > > + >> > > > +void hmp_info_memory_devices(Monitor *mon, const QDict *qdict) >> > > > +{ >> > > > + Error *err = NULL; >> > > > + MemoryDeviceInfoList *info_list = qmp_query_memory_devices(&err); >> > > > + MemoryDeviceInfoList *info; >> > > > + MemoryDeviceInfo *value; >> > > > + PCDIMMDeviceInfo *di; >> > > > + >> > > > + for (info = info_list; info; info = info->next) { >> > > > + value = info->value; >> > > > + >> > > > + if (value) { >> > > > + switch (value->kind) { >> > > > + case MEMORY_DEVICE_INFO_KIND_DIMM: >> > > > + di = value->dimm; >> > > > + >> > > > + monitor_printf(mon, "Memory device [%s]: %s\n", >> > > > + >> > > > MemoryDeviceInfoKind_lookup[value->kind], >> > > > + di->id); >> > 'id' might be null, here is what user will see: >> > >> > Memory device [dimm]: (null) >> > >> > I'd suggest to replace (null) with "" as it is done elsewhere. >> >> Is the fix below what you're looking for? If it is I can apply it myself: > > I am sorry, I did not test this fix in my code last time. But your fix > would print nothing when the id was null.
Printing nothing when there's no ID has a certain logic to it :) > So I think the fix would like the below, could you apply it? > Thanks! > > diff --git a/hmp.c b/hmp.c > index feefeb4..39a6490 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -1737,7 +1737,7 @@ void hmp_info_memory_devices(Monitor *mon, const > QDict *qdict) > > monitor_printf(mon, "Memory device [%s]: %s\n", > MemoryDeviceInfoKind_lookup[value->kind], > - di->id); > + di->id ? di->id : "\"\""); > monitor_printf(mon, " addr: 0x%" PRIx64 "\n",di->addr); > monitor_printf(mon, " slot: %" PRId64 "\n", di->slot); > monitor_printf(mon, " node: %" PRId64 "\n", di->node); I'd stick to printing nothing.