From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58545) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRh8M-0006YS-Gv for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:13:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRh8J-0007QN-BE for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:13:14 -0500 Received: from mx2.parallels.com ([199.115.105.18]:34770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRh8J-0007Pz-2G for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:13:11 -0500 Message-ID: <56B4ADE7.7050306@virtuozzo.com> Date: Fri, 5 Feb 2016 17:12:55 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 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> In-Reply-To: <20160205135740.0672e794@nial.brq.redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed 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: Igor Mammedov 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 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. > >> } >> - qapi_free_MemoryDeviceInfoList(info_list); >> + g_slist_free(list); >> >> return size; >> } -- Best regards, Vladimir