On Mon, 22 Sep 2014 09:59:06 +0200 Markus Armbruster <arm...@redhat.com> wrote:
> 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 :) When I do 'info qtree' it displays empty IDs with as empty "" I think we should be consistent and apply above correction. > > > 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.