From 840eca32aba4f67e3d4473aae5b075062bc49006 Mon Sep 17 00:00:00 2001 From: Boris Fiuczynski Date: Wed, 10 Jun 2015 09:02:36 +0200 Subject: [PATCH] qemu: monitor: Add memory balloon support for virtio-ccw The search for the memory balloon driver object is extended by a second known name "virtio-balloon-ccw" in support for virtio-ccw. Signed-off-by: Boris Fiuczynski Reviewed-by: Daniel Hansel Reviewed-by: Eric Farman Reviewed-by: Stefan Zimmermann --- src/qemu/qemu_monitor.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 33600f0350..e545740732 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1069,9 +1069,9 @@ qemuMonitorSetOptions(qemuMonitorPtr mon, virJSONValuePtr options) /** - * Search the qom objects for the balloon driver object by it's known name - * of "virtio-balloon-pci". The entry for the driver will be found by using - * function "qemuMonitorFindObjectPath". + * Search the qom objects for the balloon driver object by its known names + * of "virtio-balloon-pci" or "virtio-balloon-ccw". The entry for the driver + * will be found by using function "qemuMonitorJSONFindLinkPath". * * Once found, check the entry to ensure it has the correct property listed. * If it does not, then obtaining statistics from QEMU will not be possible. @@ -1081,6 +1081,7 @@ static void qemuMonitorInitBalloonObjectPath(qemuMonitorPtr mon) { ssize_t i, nprops = 0; + int flp_ret = 0; char *path = NULL; qemuMonitorJSONListPathPtr *bprops = NULL; @@ -1093,8 +1094,14 @@ qemuMonitorInitBalloonObjectPath(qemuMonitorPtr mon) } mon->ballooninit = true; - if (qemuMonitorJSONFindLinkPath(mon, "virtio-balloon-pci", &path) < 0) + flp_ret = qemuMonitorJSONFindLinkPath(mon, "virtio-balloon-pci", &path); + if (flp_ret == -2) { + /* pci object was not found retry search for ccw object */ + if (qemuMonitorJSONFindLinkPath(mon, "virtio-balloon-ccw", &path) < 0) + return; + } else if (flp_ret < 0) { return; + } nprops = qemuMonitorJSONGetObjectListPaths(mon, path, &bprops); if (nprops < 0)