From nobody Mon Feb 9 06:34:36 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1536236553392789.8470714125453; Thu, 6 Sep 2018 05:22:33 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 83B6B5D669; Thu, 6 Sep 2018 12:22:31 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EE6285C8BD; Thu, 6 Sep 2018 12:22:30 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D1C40181A12E; Thu, 6 Sep 2018 12:22:28 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w86CMRZI006814 for ; Thu, 6 Sep 2018 08:22:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id 74BAF10075E5; Thu, 6 Sep 2018 12:22:27 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1559810FD2B6 for ; Thu, 6 Sep 2018 12:22:26 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Thu, 6 Sep 2018 14:22:15 +0200 Message-Id: <20180906122219.15056-4-abologna@redhat.com> In-Reply-To: <20180906122219.15056-1-abologna@redhat.com> References: <20180906122219.15056-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 3/7] qemu: Remove duplicated option formatting for virtio devices X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Thu, 06 Sep 2018 12:22:32 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" There are several functions where we pointlessly duplicate parts of the format string and pass the same arguments: refactor them so that the common parts are formatted separately from the variable parts. Signed-off-by: Andrea Bolognani Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 42 ++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 72d8bb4cf6..b283f7ca83 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2004,8 +2004,6 @@ qemuBuildDiskDeviceStr(const virDomainDef *def, case VIR_DOMAIN_DISK_BUS_VIRTIO: if (disk->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) { virBufferAddLit(&opt, "virtio-blk-ccw"); - if (disk->iothread) - virBufferAsprintf(&opt, ",iothread=3Diothread%u", disk->io= thread); } else if (disk->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) { virBufferAddLit(&opt, "virtio-blk-s390"); @@ -2014,9 +2012,14 @@ qemuBuildDiskDeviceStr(const virDomainDef *def, virBufferAddLit(&opt, "virtio-blk-device"); } else { virBufferAddLit(&opt, "virtio-blk-pci"); - if (disk->iothread) - virBufferAsprintf(&opt, ",iothread=3Diothread%u", disk->io= thread); } + + if (disk->iothread && + (disk->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW || + disk->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) { + virBufferAsprintf(&opt, ",iothread=3Diothread%u", disk->iothre= ad); + } + qemuBuildIoEventFdStr(&opt, disk->ioeventfd, qemuCaps); if (disk->event_idx && virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_EVENT_IDX)) { @@ -4064,7 +4067,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, _("virtio-mouse is not supported by this QEMU b= inary")); goto error; } - virBufferAsprintf(&buf, "virtio-mouse%s,id=3D%s", suffix, dev->inf= o.alias); + virBufferAsprintf(&buf, "virtio-mouse%s", suffix); break; case VIR_DOMAIN_INPUT_TYPE_TABLET: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_TABLET) || @@ -4074,7 +4077,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, _("virtio-tablet is not supported by this QEMU = binary")); goto error; } - virBufferAsprintf(&buf, "virtio-tablet%s,id=3D%s", suffix, dev->in= fo.alias); + virBufferAsprintf(&buf, "virtio-tablet%s", suffix); break; case VIR_DOMAIN_INPUT_TYPE_KBD: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_KEYBOARD) || @@ -4084,7 +4087,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, _("virtio-keyboard is not supported by this QEM= U binary")); goto error; } - virBufferAsprintf(&buf, "virtio-keyboard%s,id=3D%s", suffix, dev->= info.alias); + virBufferAsprintf(&buf, "virtio-keyboard%s", suffix); break; case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_INPUT_HOST)) { @@ -4092,8 +4095,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, _("virtio-input-host is not supported by this Q= EMU binary")); goto error; } - virBufferAsprintf(&buf, "virtio-input-host%s,id=3D%s,evdev=3D", su= ffix, dev->info.alias); - virQEMUBuildBufferEscapeComma(&buf, dev->source.evdev); + virBufferAsprintf(&buf, "virtio-input-host%s", suffix); break; case VIR_DOMAIN_INPUT_TYPE_LAST: default: @@ -4102,6 +4104,13 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def, goto error; } =20 + virBufferAsprintf(&buf, ",id=3D%s", dev->info.alias); + + if (dev->type =3D=3D VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH) { + virBufferAddLit(&buf, ",evdev=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->source.evdev); + } + if (qemuBuildDeviceAddressStr(&buf, def, &dev->info, qemuCaps) < 0) goto error; =20 @@ -5834,17 +5843,16 @@ qemuBuildRNGDevStr(const virDomainDef *def, goto error; =20 if (dev->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) - virBufferAsprintf(&buf, "virtio-rng-ccw,rng=3Dobj%s,id=3D%s", - dev->info.alias, dev->info.alias); + virBufferAddLit(&buf, "virtio-rng-ccw"); else if (dev->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S= 390) - virBufferAsprintf(&buf, "virtio-rng-s390,rng=3Dobj%s,id=3D%s", - dev->info.alias, dev->info.alias); + virBufferAddLit(&buf, "virtio-rng-s390"); else if (dev->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_M= MIO) - virBufferAsprintf(&buf, "virtio-rng-device,rng=3Dobj%s,id=3D%s", - dev->info.alias, dev->info.alias); + virBufferAddLit(&buf, "virtio-rng-device"); else - virBufferAsprintf(&buf, "virtio-rng-pci,rng=3Dobj%s,id=3D%s", - dev->info.alias, dev->info.alias); + virBufferAddLit(&buf, "virtio-rng-pci"); + + virBufferAsprintf(&buf, ",rng=3Dobj%s,id=3D%s", + dev->info.alias, dev->info.alias); =20 if (dev->rate > 0) { virBufferAsprintf(&buf, ",max-bytes=3D%u", dev->rate); --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list