From nobody Wed Jan 15 13:39:49 2025 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1705487648516126.65589774881914; Wed, 17 Jan 2024 02:34:08 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 67CDA1EA7; Wed, 17 Jan 2024 05:34:07 -0500 (EST) Received: from lists.libvirt.org.85.43.8.in-addr.arpa (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 195B41DC2; Wed, 17 Jan 2024 04:57:35 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id B24511C5A; Wed, 17 Jan 2024 04:55:16 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 5A3341C79 for ; Wed, 17 Jan 2024 04:55:03 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-672-_fbnVr_SOaqSIHMEHkNOaA-1; Wed, 17 Jan 2024 04:55:01 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3AF278314F8 for ; Wed, 17 Jan 2024 09:55:01 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.208]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C65E340C6EB9 for ; Wed, 17 Jan 2024 09:55:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: _fbnVr_SOaqSIHMEHkNOaA-1 From: Andrea Bolognani To: devel@lists.libvirt.org Subject: [PATCH 11/18] qemu: Improve qemuDomainSupportsPCI() Date: Wed, 17 Jan 2024 10:54:44 +0100 Message-ID: <20240117095451.788816-12-abologna@redhat.com> In-Reply-To: <20240117095451.788816-1-abologna@redhat.com> References: <20240117095451.788816-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 4YXAVPDHX2ORS7WIQD3I4FSHDW55UO22 X-Message-ID-Hash: 4YXAVPDHX2ORS7WIQD3I4FSHDW55UO22 X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8"; x-default="true" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1705487649203100001 The way the function is currently written sort of obscures this fact, but ultimately we already unconditionally assume PCI support on most architectures. Arm and RISC-V need some additional checks to maintain compatibility with existing configurations but for all future architectures, such as the upcoming LoongArch64, we expect PCI support to come out of the box. Last but not least, the functions is made const-correct. Signed-off-by: Andrea Bolognani Reviewed-by: Peter Krempa --- src/qemu/qemu_domain.c | 31 ++++++++++++++++++------------- src/qemu/qemu_domain.h | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7c87cd6453..80281d9b48 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9059,24 +9059,29 @@ qemuDomainNeedsFDC(const virDomainDef *def) =20 =20 bool -qemuDomainSupportsPCI(virDomainDef *def) +qemuDomainSupportsPCI(const virDomainDef *def) { - if (def->os.arch !=3D VIR_ARCH_ARMV6L && - def->os.arch !=3D VIR_ARCH_ARMV7L && - def->os.arch !=3D VIR_ARCH_AARCH64 && - !ARCH_IS_RISCV(def->os.arch)) { - return true; + /* On Arm architectures, only the virt and versatilepb + * machine types support PCI */ + if (ARCH_IS_ARM(def->os.arch)) { + if (qemuDomainIsARMVirt(def) || + STREQ(def->os.machine, "versatilepb")) { + return true; + } + return false; } =20 - if (STREQ(def->os.machine, "versatilepb")) - return true; - - if (qemuDomainIsARMVirt(def) || - qemuDomainIsRISCVVirt(def)) { - return true; + /* On RISC-V, only the virt machine type supports PCI */ + if (ARCH_IS_RISCV(def->os.arch)) { + if (qemuDomainIsRISCVVirt(def)) { + return true; + } + return false; } =20 - return false; + /* On all other architectures, PCI support is assumed to + * be present */ + return true; } =20 =20 diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index b0f1587f58..49e0fcf498 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -834,7 +834,7 @@ bool qemuDomainHasPCIeRoot(const virDomainDef *def); bool qemuDomainHasBuiltinIDE(const virDomainDef *def); bool qemuDomainHasBuiltinESP(const virDomainDef *def); bool qemuDomainNeedsFDC(const virDomainDef *def); -bool qemuDomainSupportsPCI(virDomainDef *def); +bool qemuDomainSupportsPCI(const virDomainDef *def); =20 void qemuDomainUpdateCurrentMemorySize(virDomainObj *vm); =20 --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org