From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45479) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRhls-0003Md-1x for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:54:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRhlo-0002Rx-RO for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:54:03 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36441) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRhlo-0002Rl-Lt for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:54:00 -0500 Date: Fri, 5 Feb 2016 15:53:55 +0100 From: Igor Mammedov Message-ID: <20160205155355.0cc8b9fa@nial.brq.redhat.com> In-Reply-To: <56B4ADE7.7050306@virtuozzo.com> References: <1454660341-45244-1-git-send-email-vsementsov@virtuozzo.com> <1454660341-45244-5-git-send-email-vsementsov@virtuozzo.com> <20160205135740.0672e794@nial.brq.redhat.com> <56B4ADE7.7050306@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/5] virtio-balloon: rewrite get_current_ram_size() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vladimir Sementsov-Ogievskiy Cc: guangrong.xiao@linux.intel.com, mst@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, stefanha@redhat.com, cornelia.huck@de.ibm.com, den@openvz.org, lcapitulino@redhat.com On Fri, 5 Feb 2016 17:12:55 +0300 Vladimir Sementsov-Ogievskiy wrote: > On 05.02.2016 15:57, Igor Mammedov wrote: > > On Fri, 5 Feb 2016 11:19:00 +0300 > > Vladimir Sementsov-Ogievskiy wrote: > > > >> Use pc_dimm_built_list() instead of qmp_pc_dimm_device_list() > >> > >> Actually, Qapi is not related to this internal helper. > >> > >> Signed-off-by: Vladimir Sementsov-Ogievskiy > >> --- > >> hw/virtio/virtio-balloon.c | 23 ++++++----------------- > >> 1 file changed, 6 insertions(+), 17 deletions(-) > >> > >> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c > >> index 6a4c4d2..b9c1964 100644 > >> --- a/hw/virtio/virtio-balloon.c > >> +++ b/hw/virtio/virtio-balloon.c > >> @@ -296,26 +296,15 @@ static void virtio_balloon_get_config(VirtIODevice *vdev, uint8_t *config_data) > >> > >> static ram_addr_t get_current_ram_size(void) > >> { > >> - MemoryDeviceInfoList *info_list = NULL; > >> - MemoryDeviceInfoList **prev = &info_list; > >> - MemoryDeviceInfoList *info; > >> + GSList *list = NULL, *item; > >> ram_addr_t size = ram_size; > >> > >> - qmp_pc_dimm_device_list(qdev_get_machine(), &prev); > >> - for (info = info_list; info; info = info->next) { > >> - MemoryDeviceInfo *value = info->value; > >> - > >> - if (value) { > >> - switch (value->type) { > >> - case MEMORY_DEVICE_INFO_KIND_DIMM: > >> - size += value->u.dimm->size; > >> - break; > >> - default: > >> - break; > >> - } > >> - } > >> + pc_dimm_build_list(qdev_get_machine(), &list); > >> + for (item = list; item; item = g_slist_next(item)) { > >> + PCDIMMDevice *dimm = item->data; > > dimm is accessed via properties so you can use Object* instead of PCDIMMDevice > > > > Object *obj = OBJECT(item->data) > > ok > > > > >> + size += object_property_get_int(OBJECT(dimm), PC_DIMM_SIZE_PROP, NULL); > > maybe > > s/NULL/error_abort/ > > Not sure, but agree, absence of size for memory device is very strange. it shouldn't happen ever, if error happens it's programming error and we should fix it then but not hide it. > > > > >> } > >> - qapi_free_MemoryDeviceInfoList(info_list); > >> + g_slist_free(list); > >> > >> return size; > >> } > >