From nobody Sat Feb 7 06:05:37 2026 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 1714399581865375.2872215819415; Mon, 29 Apr 2024 07:06:21 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id C16F12124; Mon, 29 Apr 2024 10:06:20 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id AD5D72249; Mon, 29 Apr 2024 10:03:07 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 193D01DC2; Mon, 29 Apr 2024 10:02:59 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 D05F11DD8 for ; Mon, 29 Apr 2024 10:02:57 -0400 (EDT) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-583-Uc2470q0Nfq36giQ4Eb3tQ-1; Mon, 29 Apr 2024 10:02:52 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (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 85C3A29AC015 for ; Mon, 29 Apr 2024 14:02:52 +0000 (UTC) Received: from orkuz (unknown [10.43.3.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4B8581121306 for ; Mon, 29 Apr 2024 14:02:52 +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.7 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: Uc2470q0Nfq36giQ4Eb3tQ-1 From: Jiri Denemark To: devel@lists.libvirt.org Subject: [PATCH 1/4] conf: Change return value of some CPU feature APIs Date: Mon, 29 Apr 2024 16:02:45 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: YHXQBOYU7SP7UXMTLZGKL3DXQVAHZERQ X-Message-ID-Hash: YHXQBOYU7SP7UXMTLZGKL3DXQVAHZERQ X-MailFrom: jdenemar@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" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1714399583503100001 The virCPUDefAddFeatureInternal helper function only fails if it is called with VIR_CPU_ADD_FEATURE_MODE_EXCLUSIVE, which is only used in virCPUDefAddFeature. The other callers (virCPUDefUpdateFeature and virCPUDefAddFeatureIfMissing) will never get anything but 0 from virCPUDefAddFeatureInternal and their return type can be changed to void. Signed-off-by: Jiri Denemark --- src/conf/cpu_conf.c | 12 ++++---- src/conf/cpu_conf.h | 4 +-- src/cpu/cpu_s390.c | 7 ++--- src/cpu/cpu_x86.c | 58 +++++++++++++----------------------- src/qemu/qemu_capabilities.c | 5 ++-- src/qemu/qemu_domain.c | 3 +- 6 files changed, 34 insertions(+), 55 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 4dca7e57ec..dcc164d165 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -938,13 +938,13 @@ virCPUDefAddFeatureInternal(virCPUDef *def, return 0; } =20 -int +void virCPUDefUpdateFeature(virCPUDef *def, const char *name, int policy) { - return virCPUDefAddFeatureInternal(def, name, policy, - VIR_CPU_ADD_FEATURE_MODE_UPDATE); + virCPUDefAddFeatureInternal(def, name, policy, + VIR_CPU_ADD_FEATURE_MODE_UPDATE); } =20 int @@ -957,13 +957,13 @@ virCPUDefAddFeature(virCPUDef *def, } =20 =20 -int +void virCPUDefAddFeatureIfMissing(virCPUDef *def, const char *name, int policy) { - return virCPUDefAddFeatureInternal(def, name, policy, - VIR_CPU_ADD_FEATURE_MODE_NEW); + virCPUDefAddFeatureInternal(def, name, policy, + VIR_CPU_ADD_FEATURE_MODE_NEW); } =20 =20 diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index b10c23ee82..f71d942ce6 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -245,12 +245,12 @@ virCPUDefAddFeature(virCPUDef *cpu, const char *name, int policy); =20 -int +void virCPUDefUpdateFeature(virCPUDef *cpu, const char *name, int policy); =20 -int +void virCPUDefAddFeatureIfMissing(virCPUDef *def, const char *name, int policy); diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c index ffb1a2cf7b..13695ee97a 100644 --- a/src/cpu/cpu_s390.c +++ b/src/cpu/cpu_s390.c @@ -72,10 +72,9 @@ virCPUs390Update(virCPUDef *guest, virCPUDefCopyModel(updated, host, true); =20 for (i =3D 0; i < guest->nfeatures; i++) { - if (virCPUDefUpdateFeature(updated, - guest->features[i].name, - guest->features[i].policy) < 0) - return -1; + virCPUDefUpdateFeature(updated, + guest->features[i].name, + guest->features[i].policy); } =20 virCPUDefStealModel(guest, updated, false); diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 0fad761809..8770f52d15 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -834,23 +834,19 @@ x86DataAddSignature(virCPUx86Data *data, * mentioned in @cpu to make sure these features will always be explicitly * listed in the CPU definition. */ -static int +static void virCPUx86DisableRemovedFeatures(virCPUDef *cpu, virCPUx86Model *model) { char **feat =3D model->removedFeatures; =20 if (!feat) - return 0; + return; =20 while (*feat) { - if (virCPUDefAddFeatureIfMissing(cpu, *feat, VIR_CPU_FEATURE_DISAB= LE) < 0) - return -1; - + virCPUDefAddFeatureIfMissing(cpu, *feat, VIR_CPU_FEATURE_DISABLE); feat++; } - - return 0; } =20 =20 @@ -901,10 +897,8 @@ x86DataToCPU(const virCPUx86Data *data, x86DataToCPUFeatures(cpu, VIR_CPU_FEATURE_DISABLE, &modelData, map= )) return NULL; =20 - if (cpuType =3D=3D VIR_CPU_TYPE_GUEST) { - if (virCPUx86DisableRemovedFeatures(cpu, model) < 0) - return NULL; - } + if (cpuType =3D=3D VIR_CPU_TYPE_GUEST) + virCPUx86DisableRemovedFeatures(cpu, model); =20 cpu->type =3D cpuType; =20 @@ -2914,7 +2908,7 @@ virCPUx86Baseline(virCPUDef **cpus, } =20 =20 -static int +static void x86UpdateHostModel(virCPUDef *guest, const virCPUDef *host) { @@ -2931,18 +2925,15 @@ x86UpdateHostModel(virCPUDef *guest, } =20 for (i =3D 0; i < guest->nfeatures; i++) { - if (virCPUDefUpdateFeature(updated, - guest->features[i].name, - guest->features[i].policy) < 0) - return -1; + virCPUDefUpdateFeature(updated, + guest->features[i].name, + guest->features[i].policy); } =20 virCPUDefStealModel(guest, updated, guest->mode =3D=3D VIR_CPU_MODE_CUSTOM); guest->mode =3D VIR_CPU_MODE_CUSTOM; guest->match =3D VIR_CPU_MATCH_EXACT; - - return 0; } =20 =20 @@ -2984,8 +2975,7 @@ virCPUx86Update(virCPUDef *guest, =20 if (guest->mode =3D=3D VIR_CPU_MODE_HOST_MODEL || guest->match =3D=3D VIR_CPU_MATCH_MINIMUM) { - if (x86UpdateHostModel(guest, host) < 0) - return -1; + x86UpdateHostModel(guest, host); } } =20 @@ -2995,8 +2985,7 @@ virCPUx86Update(virCPUDef *guest, return -1; } =20 - if (virCPUx86DisableRemovedFeatures(guest, guestModel) < 0) - return -1; + virCPUx86DisableRemovedFeatures(guest, guestModel); =20 return 0; } @@ -3065,9 +3054,8 @@ virCPUx86UpdateLive(virCPUDef *cpu, if (cpu->check =3D=3D VIR_CPU_CHECK_FULL && !g_strv_contains((const char **) model->addedFeatures, fea= ture->name)) { virBufferAsprintf(&bufAdded, "%s,", feature->name); - } else if (virCPUDefUpdateFeature(cpu, feature->name, - VIR_CPU_FEATURE_REQUIRE) < 0= ) { - return -1; + } else { + virCPUDefUpdateFeature(cpu, feature->name, VIR_CPU_FEATURE= _REQUIRE); } } =20 @@ -3077,14 +3065,12 @@ virCPUx86UpdateLive(virCPUDef *cpu, VIR_DEBUG("Feature '%s' disabled by the hypervisor", feature->= name); if (cpu->check =3D=3D VIR_CPU_CHECK_FULL) virBufferAsprintf(&bufRemoved, "%s,", feature->name); - else if (virCPUDefUpdateFeature(cpu, feature->name, - VIR_CPU_FEATURE_DISABLE) < 0) - return -1; + else + virCPUDefUpdateFeature(cpu, feature->name, VIR_CPU_FEATURE= _DISABLE); } } =20 - if (virCPUx86DisableRemovedFeatures(cpu, model) < 0) - return -1; + virCPUx86DisableRemovedFeatures(cpu, model); =20 virBufferTrim(&bufAdded, ","); virBufferTrim(&bufRemoved, ","); @@ -3186,8 +3172,7 @@ virCPUx86Translate(virCPUDef *cpu, =20 for (i =3D 0; i < cpu->nfeatures; i++) { virCPUFeatureDef *f =3D cpu->features + i; - if (virCPUDefUpdateFeature(translated, f->name, f->policy) < 0) - return -1; + virCPUDefUpdateFeature(translated, f->name, f->policy); } =20 virCPUDefStealModel(cpu, translated, true); @@ -3229,14 +3214,11 @@ virCPUx86ExpandFeatures(virCPUDef *cpu) f->policy !=3D VIR_CPU_FEATURE_DISABLE) continue; =20 - if (virCPUDefUpdateFeature(expanded, f->name, f->policy) < 0) - return -1; + virCPUDefUpdateFeature(expanded, f->name, f->policy); } =20 - if (!host) { - if (virCPUx86DisableRemovedFeatures(expanded, model) < 0) - return -1; - } + if (!host) + virCPUx86DisableRemovedFeatures(expanded, model); =20 virCPUDefFreeModel(cpu); =20 diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 21f93c6774..3c16b8f560 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3846,10 +3846,9 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, goto error; =20 for (i =3D 0; i < cpuExpanded->nfeatures; i++) { - if (cpuExpanded->features[i].policy =3D=3D VIR_CPU_FEATURE_REQ= UIRE && + if (cpuExpanded->features[i].policy =3D=3D VIR_CPU_FEATURE_REQ= UIRE) virCPUDefUpdateFeature(fullCPU, cpuExpanded->features[i].n= ame, - VIR_CPU_FEATURE_REQUIRE) < 0) - goto error; + VIR_CPU_FEATURE_REQUIRE); } } =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 3469f0d40c..e42b04865b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6699,8 +6699,7 @@ qemuDomainMakeCPUMigratable(virArch arch, * would think it was implicitly enabled on the source). New libvi= rt * will drop it from the XML before starting the domain on new QEM= U. */ - if (virCPUDefUpdateFeature(cpu, "pconfig", VIR_CPU_FEATURE_DISABLE= ) < 0) - return -1; + virCPUDefUpdateFeature(cpu, "pconfig", VIR_CPU_FEATURE_DISABLE); } =20 if (virCPUx86GetAddedFeatures(cpu->model, &data.added) < 0) --=20 2.44.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org