From nobody Fri Jan 9 08:44:22 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1766965225; cv=none; d=zohomail.com; s=zohoarc; b=ngSGKEd27Cl+17+yZKDveJ5O9rMBmybe83c2A27V2FVPHoEuGyuulxsKXZXg5RhtfzwhAWjlHSqDm+LwcjiOoZimPla3CHD76GZrIRcfx7sByVktC8UQtkKq6F6IZxPQOiggSfeKkg+5yxsCLKE0THuydQ5Fpn1YJh+bJMyC5nA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766965225; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=8pJmYV7JW1f35hSNw19n/7yYcL6pza1klPAqBuuRGh4=; b=l5IWj0VVBgQwStqdRzvCxTWTruGBwS4SIeUzPN1yYqNXohxyvPg0rSiR/FCdbWMfunGEcDQxalg55T1h5+yVI7Umj8G5BcM1V1R+PWr4T7VfQrw41pxfsshcSVmV8hUhiJcKaJcp7O7YQM1zMTJPAcmAg4Cng0wPXI5aQAQqSzY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1766965225906620.2897457970266; Sun, 28 Dec 2025 15:40:25 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id CF40841AAF; Sun, 28 Dec 2025 18:40:19 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 7691E419A3; Sun, 28 Dec 2025 18:39:14 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 203DD3FD11; Sun, 28 Dec 2025 18:34:21 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id DE1E6417F2 for ; Sun, 28 Dec 2025 18:34:19 -0500 (EST) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-564-kbUQd5NTPD-AWA7oyXcX_A-1; Sun, 28 Dec 2025 18:34:18 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (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 mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2D7ED1800358 for ; Sun, 28 Dec 2025 23:34:17 +0000 (UTC) Received: from harajuku.usersys.redhat.com.homenet.telecomitalia.it (unknown [10.45.224.19]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6ED0E30001A8 for ; Sun, 28 Dec 2025 23:34:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1766964859; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8pJmYV7JW1f35hSNw19n/7yYcL6pza1klPAqBuuRGh4=; b=bEKUyV/hjBvhZHusDSrJ99yOldTNlGyDj2jO/aJI/gQP5tXU1f1xfOwJK4krXrNk7St3/7 A5bMwA8zsNEkml/ASmL5zDBWFqiG5HR52L3Ksl0c4qYVwwlJjft1AQgb9h9/wqQUHIJVmE y9+nEksOHoIZyxMWXpBL0oqHfA/mrxI= X-MC-Unique: kbUQd5NTPD-AWA7oyXcX_A-1 X-Mimecast-MFC-AGG-ID: kbUQd5NTPD-AWA7oyXcX_A_1766964857 To: devel@lists.libvirt.org Subject: [PATCH 01/36] qemu_firmware: Drop support for kernel descriptors Date: Mon, 29 Dec 2025 00:33:37 +0100 Message-ID: <20251228233412.1709869-2-abologna@redhat.com> In-Reply-To: <20251228233412.1709869-1-abologna@redhat.com> References: <20251228233412.1709869-1-abologna@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: E00D0rr34LLvov1a8V0w6o6ovyYf7BHV5-RrdJ7V8I8_1766964857 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: BRSATJU7OGFM4ONNXDIDA24LN2E4OCOW X-Message-ID-Hash: BRSATJU7OGFM4ONNXDIDA24LN2E4OCOW X-MailFrom: abologna@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Andrea Bolognani via Devel Reply-To: Andrea Bolognani X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1766965228608158500 Content-Type: text/plain; charset="utf-8"; x-default="true" I have been able to find exactly zero evidence of this type of firmware descriptor actually existing in the wild, so this is essentialy dead code. Dropping it simplifies the task of further tweaking the firmware selection code. Signed-off-by: Andrea Bolognani --- src/qemu/qemu_firmware.c | 83 ++-------------------------------------- 1 file changed, 3 insertions(+), 80 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 5bd34ea87f..b168ec7cf7 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -92,12 +92,6 @@ struct _qemuFirmwareMappingFlash { }; =20 =20 -typedef struct _qemuFirmwareMappingKernel qemuFirmwareMappingKernel; -struct _qemuFirmwareMappingKernel { - char *filename; -}; - - typedef struct _qemuFirmwareMappingMemory qemuFirmwareMappingMemory; struct _qemuFirmwareMappingMemory { char *filename; @@ -107,7 +101,6 @@ struct _qemuFirmwareMappingMemory { typedef enum { QEMU_FIRMWARE_DEVICE_NONE =3D 0, QEMU_FIRMWARE_DEVICE_FLASH, - QEMU_FIRMWARE_DEVICE_KERNEL, QEMU_FIRMWARE_DEVICE_MEMORY, =20 QEMU_FIRMWARE_DEVICE_LAST @@ -118,7 +111,6 @@ VIR_ENUM_IMPL(qemuFirmwareDevice, QEMU_FIRMWARE_DEVICE_LAST, "", "flash", - "kernel", "memory", ); =20 @@ -129,7 +121,6 @@ struct _qemuFirmwareMapping { =20 union { qemuFirmwareMappingFlash flash; - qemuFirmwareMappingKernel kernel; qemuFirmwareMappingMemory memory; } data; }; @@ -222,13 +213,6 @@ qemuFirmwareMappingFlashFreeContent(qemuFirmwareMappin= gFlash *flash) } =20 =20 -static void -qemuFirmwareMappingKernelFreeContent(qemuFirmwareMappingKernel *kernel) -{ - g_free(kernel->filename); -} - - static void qemuFirmwareMappingMemoryFreeContent(qemuFirmwareMappingMemory *memory) { @@ -243,9 +227,6 @@ qemuFirmwareMappingFreeContent(qemuFirmwareMapping *map= ping) case QEMU_FIRMWARE_DEVICE_FLASH: qemuFirmwareMappingFlashFreeContent(&mapping->data.flash); break; - case QEMU_FIRMWARE_DEVICE_KERNEL: - qemuFirmwareMappingKernelFreeContent(&mapping->data.kernel); - break; case QEMU_FIRMWARE_DEVICE_MEMORY: qemuFirmwareMappingMemoryFreeContent(&mapping->data.memory); break; @@ -418,24 +399,6 @@ qemuFirmwareMappingFlashParse(const char *path, } =20 =20 -static int -qemuFirmwareMappingKernelParse(const char *path, - virJSONValue *doc, - qemuFirmwareMappingKernel *kernel) -{ - const char *filename; - - if (!(filename =3D virJSONValueObjectGetString(doc, "filename"))) { - VIR_DEBUG("missing 'filename' in '%s'", path); - return -1; - } - - kernel->filename =3D g_strdup(filename); - - return 0; -} - - static int qemuFirmwareMappingMemoryParse(const char *path, virJSONValue *doc, @@ -485,10 +448,6 @@ qemuFirmwareMappingParse(const char *path, if (qemuFirmwareMappingFlashParse(path, mapping, &fw->mapping.data= .flash) < 0) return -1; break; - case QEMU_FIRMWARE_DEVICE_KERNEL: - if (qemuFirmwareMappingKernelParse(path, mapping, &fw->mapping.dat= a.kernel) < 0) - return -1; - break; case QEMU_FIRMWARE_DEVICE_MEMORY: if (qemuFirmwareMappingMemoryParse(path, mapping, &fw->mapping.dat= a.memory) < 0) return -1; @@ -732,19 +691,6 @@ qemuFirmwareMappingFlashFormat(virJSONValue *mapping, } =20 =20 -static int -qemuFirmwareMappingKernelFormat(virJSONValue *mapping, - qemuFirmwareMappingKernel *kernel) -{ - if (virJSONValueObjectAppendString(mapping, - "filename", - kernel->filename) < 0) - return -1; - - return 0; -} - - static int qemuFirmwareMappingMemoryFormat(virJSONValue *mapping, qemuFirmwareMappingMemory *memory) @@ -774,10 +720,6 @@ qemuFirmwareMappingFormat(virJSONValue *doc, if (qemuFirmwareMappingFlashFormat(mapping, &fw->mapping.data.flas= h) < 0) return -1; break; - case QEMU_FIRMWARE_DEVICE_KERNEL: - if (qemuFirmwareMappingKernelFormat(mapping, &fw->mapping.data.ker= nel) < 0) - return -1; - break; case QEMU_FIRMWARE_DEVICE_MEMORY: if (qemuFirmwareMappingMemoryFormat(mapping, &fw->mapping.data.mem= ory) < 0) return -1; @@ -920,21 +862,17 @@ qemuFirmwareMatchesMachineArch(const qemuFirmware *fw, * qemuFirmwareMatchesPaths: * @fw: firmware definition * @loader: loader definition - * @kernelPath: path to kernel image * * Checks whether @fw is compatible with the information provided as * part of the domain definition. * - * Returns: true if @fw is compatible with @loader and @kernelPath, - * false otherwise + * Returns: true if @fw is compatible with @loader, false otherwise */ static bool qemuFirmwareMatchesPaths(const qemuFirmware *fw, - const virDomainLoaderDef *loader, - const char *kernelPath) + const virDomainLoaderDef *loader) { const qemuFirmwareMappingFlash *flash =3D &fw->mapping.data.flash; - const qemuFirmwareMappingKernel *kernel =3D &fw->mapping.data.kernel; const qemuFirmwareMappingMemory *memory =3D &fw->mapping.data.memory; =20 switch (fw->mapping.device) { @@ -954,11 +892,6 @@ qemuFirmwareMatchesPaths(const qemuFirmware *fw, !virFileComparePaths(loader->path, memory->filename)) return false; break; - case QEMU_FIRMWARE_DEVICE_KERNEL: - if (kernelPath && - !virFileComparePaths(kernelPath, kernel->filename)) - return false; - break; case QEMU_FIRMWARE_DEVICE_NONE: case QEMU_FIRMWARE_DEVICE_LAST: return false; @@ -1183,7 +1116,7 @@ qemuFirmwareMatchDomain(const virDomainDef *def, return false; } =20 - if (!qemuFirmwareMatchesPaths(fw, def->os.loader, def->os.kernel)) { + if (!qemuFirmwareMatchesPaths(fw, def->os.loader)) { VIR_DEBUG("No matching path in '%s'", path); return false; } @@ -1424,7 +1357,6 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, const qemuFirmware *fw) { const qemuFirmwareMappingFlash *flash =3D &fw->mapping.data.flash; - const qemuFirmwareMappingKernel *kernel =3D &fw->mapping.data.kernel; const qemuFirmwareMappingMemory *memory =3D &fw->mapping.data.memory; virDomainLoaderDef *loader =3D NULL; virStorageFileFormat format; @@ -1482,14 +1414,6 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, loader->path, NULLSTR(loader->nvramTemplate)); break; =20 - case QEMU_FIRMWARE_DEVICE_KERNEL: - VIR_FREE(def->os.kernel); - def->os.kernel =3D g_strdup(kernel->filename); - - VIR_DEBUG("decided on kernel '%s'", - def->os.kernel); - break; - case QEMU_FIRMWARE_DEVICE_MEMORY: if (!def->os.loader) def->os.loader =3D virDomainLoaderDefNew(); @@ -2056,7 +1980,6 @@ qemuFirmwareGetSupported(const char *machine, fwpath =3D memory->filename; break; =20 - case QEMU_FIRMWARE_DEVICE_KERNEL: case QEMU_FIRMWARE_DEVICE_NONE: case QEMU_FIRMWARE_DEVICE_LAST: break; --=20 2.52.0