From nobody Thu May 15 01:43:24 2025 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1517353539611533.6078833237481; Tue, 30 Jan 2018 15:05:39 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 43164780E5; Tue, 30 Jan 2018 23:05:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8122A5EDE2; Tue, 30 Jan 2018 23:05:37 +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 4854E5FBE1; Tue, 30 Jan 2018 23:05:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w0UN5GpE006246 for ; Tue, 30 Jan 2018 18:05:16 -0500 Received: by smtp.corp.redhat.com (Postfix) id BAF7B5C25E; Tue, 30 Jan 2018 23:05:16 +0000 (UTC) Received: from unknown54ee7586bd10.attlocal.net.com (ovpn-116-232.phx2.redhat.com [10.3.116.232]) by smtp.corp.redhat.com (Postfix) with ESMTP id 78E7A5C20B for ; Tue, 30 Jan 2018 23:05:16 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Tue, 30 Jan 2018 18:05:00 -0500 Message-Id: <20180130230503.3820-7-jferlan@redhat.com> In-Reply-To: <20180130230503.3820-1-jferlan@redhat.com> References: <20180130230503.3820-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 6/9] qemu: Introduce qemuDomainSetSCSIControllerModel 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 30 Jan 2018 23:05:38 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" During post parse processing, let's force setting the controller model to default value if not already set for defined controllers (e.g. the non implicit ones). Signed-off-by: John Ferlan --- src/qemu/qemu_domain.c | 8 +++---- src/qemu/qemu_domain_address.c | 27 ++++++++++++++++++= ++++ src/qemu/qemu_domain_address.h | 4 ++++ .../hostdev-scsi-lsi-iscsi-auth.xml | 2 +- .../qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi.xml | 2 +- tests/qemuxml2xmloutdata/hostdev-scsi-lsi.xml | 2 +- 6 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6b4bd3cca..c8123ce59 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4251,11 +4251,9 @@ qemuDomainControllerDefPostParse(virDomainController= DefPtr cont, { switch ((virDomainControllerType)cont->type) { case VIR_DOMAIN_CONTROLLER_TYPE_SCSI: - /* set the default SCSI controller model for S390 arches */ - if (cont->model =3D=3D -1 && - ARCH_IS_S390(def->os.arch)) { - cont->model =3D VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI; - } + /* Set the default SCSI controller model if not already set */ + if (qemuDomainSetSCSIControllerModel(def, cont, qemuCaps) < 0) + return -1; break; =20 case VIR_DOMAIN_CONTROLLER_TYPE_USB: diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 5211b4f8a..75c263015 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -60,6 +60,8 @@ qemuDomainGetSCSIControllerModel(const virDomainDef *def, =20 if (qemuDomainIsPSeries(def)) return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_IBMVSCSI; + else if (ARCH_IS_S390(def->os.arch)) + return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI; else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_LSI)) return VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC; else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_SCSI)) @@ -74,6 +76,31 @@ qemuDomainGetSCSIControllerModel(const virDomainDef *def, =20 /** * @def: Domain definition + * @cont: Domain controller def + * @qemuCaps: qemu capabilities + * + * Set the controller model based on the existing value and the + * capabilities if possible. + * + * Returns 0 on success, -1 on failure with error set. + */ +int +qemuDomainSetSCSIControllerModel(const virDomainDef *def, + virDomainControllerDefPtr cont, + virQEMUCapsPtr qemuCaps) +{ + int model =3D qemuDomainGetSCSIControllerModel(def, cont, qemuCaps); + + if (model < 0) + return -1; + + cont->model =3D model; + return 0; +} + + +/** + * @def: Domain definition * @info: Domain device info * @qemuCaps: QEMU capabilities * diff --git a/src/qemu/qemu_domain_address.h b/src/qemu/qemu_domain_address.h index 209b59e0d..04fb2fc14 100644 --- a/src/qemu/qemu_domain_address.h +++ b/src/qemu/qemu_domain_address.h @@ -32,6 +32,10 @@ int qemuDomainGetSCSIControllerModel(const virDomainDef = *def, const virDomainControllerDef *cont, virQEMUCapsPtr qemuCaps); =20 +int qemuDomainSetSCSIControllerModel(const virDomainDef *def, + virDomainControllerDefPtr cont, + virQEMUCapsPtr qemuCaps); + int qemuDomainFindSCSIControllerModel(const virDomainDef *def, virDomainDeviceInfoPtr info, virQEMUCapsPtr qemuCaps); diff --git a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi-auth.xml b/tes= ts/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi-auth.xml index cad016129..3d0efdcaf 100644 --- a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi-auth.xml +++ b/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi-auth.xml @@ -19,7 +19,7 @@
- +
diff --git a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi.xml b/tests/qe= muxml2xmloutdata/hostdev-scsi-lsi-iscsi.xml index b7312ca4f..28b80a02b 100644 --- a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi.xml +++ b/tests/qemuxml2xmloutdata/hostdev-scsi-lsi-iscsi.xml @@ -19,7 +19,7 @@
- +
diff --git a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi.xml b/tests/qemuxml2= xmloutdata/hostdev-scsi-lsi.xml index 54498aa5c..545ce3ba8 100644 --- a/tests/qemuxml2xmloutdata/hostdev-scsi-lsi.xml +++ b/tests/qemuxml2xmloutdata/hostdev-scsi-lsi.xml @@ -19,7 +19,7 @@
- +
--=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list