From nobody Wed Feb 11 10:11:59 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.39 as permitted sender) client-ip=209.132.183.39; envelope-from=libvir-list-bounces@redhat.com; helo=mx6-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.39 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by mx.zohomail.com with SMTPS id 1489510944450296.11471486718574; Tue, 14 Mar 2017 10:02:24 -0700 (PDT) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v2EGwSnM017499; Tue, 14 Mar 2017 12:58:28 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2EGvuT2002629 for ; Tue, 14 Mar 2017 12:57:56 -0400 Received: from virval.usersys.redhat.com (dhcp129-92.brq.redhat.com [10.34.129.92]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v2EGvtHg027836 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Tue, 14 Mar 2017 12:57:56 -0400 Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 8958D1062D5; Tue, 14 Mar 2017 17:57:53 +0100 (CET) From: Jiri Denemark To: libvir-list@redhat.com Date: Tue, 14 Mar 2017 17:57:47 +0100 Message-Id: <3756fc97dcc4f2ecbdafd909f44270ee564e0322.1489510598.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 08/12] qemu: Refactor qemuProcessVerifyGuestCPU 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark --- src/qemu/qemu_process.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 25371b93d..894679373 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3831,50 +3831,44 @@ qemuProcessVerifyCPUFeatures(virDomainDefPtr def, } =20 =20 -static bool +static int qemuProcessVerifyGuestCPU(virQEMUDriverPtr driver, virDomainObjPtr vm, - int asyncJob) + qemuDomainAsyncJob asyncJob) { virDomainDefPtr def =3D vm->def; - virArch arch =3D def->os.arch; - virCPUDataPtr guestcpu =3D NULL; + virCPUDataPtr cpu =3D NULL; qemuDomainObjPrivatePtr priv =3D vm->privateData; int rc; - bool ret =3D false; + int ret =3D -1; =20 - switch (arch) { - case VIR_ARCH_I686: - case VIR_ARCH_X86_64: + if (ARCH_IS_X86(def->os.arch)) { if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) - return false; - rc =3D qemuMonitorGetGuestCPU(priv->mon, arch, &guestcpu); + goto cleanup; + + rc =3D qemuMonitorGetGuestCPU(priv->mon, def->os.arch, &cpu); + if (qemuDomainObjExitMonitor(driver, vm) < 0) - return false; + goto cleanup; =20 if (rc < 0) { if (rc =3D=3D -2) - break; - + ret =3D 0; goto cleanup; } =20 - if (qemuProcessVerifyKVMFeatures(def, guestcpu) < 0 || - qemuProcessVerifyHypervFeatures(def, guestcpu) < 0) + if (qemuProcessVerifyKVMFeatures(def, cpu) < 0 || + qemuProcessVerifyHypervFeatures(def, cpu) < 0) goto cleanup; =20 - if (qemuProcessVerifyCPUFeatures(def, guestcpu) < 0) + if (qemuProcessVerifyCPUFeatures(def, cpu) < 0) goto cleanup; - break; - - default: - break; } =20 - ret =3D true; + ret =3D 0; =20 cleanup: - virCPUDataFree(guestcpu); + virCPUDataFree(cpu); return ret; } =20 @@ -5719,7 +5713,7 @@ qemuProcessLaunch(virConnectPtr conn, goto cleanup; =20 VIR_DEBUG("Detecting if required emulator features are present"); - if (!qemuProcessVerifyGuestCPU(driver, vm, asyncJob)) + if (qemuProcessVerifyGuestCPU(driver, vm, asyncJob) < 0) goto cleanup; =20 VIR_DEBUG("Setting up post-init cgroup restrictions"); --=20 2.12.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list