From nobody Tue Mar 3 04:54:09 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; 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=1771417541; cv=none; d=zohomail.com; s=zohoarc; b=NWg6bSXGEZTuui0wCJwc3bdTndG9GPdOFLbc3pVHl62rBeQXxinS5RLn83LtBKW4Kd3Fk8UqA4bmV1nuGAb2Xs+8/+eaza5q1zq4kexqm2It2zpcjvaY+BJVufGR7v66xOTgT3M2+ypHEgk69S1V4Tj+59se9YJaa2nO1131tdI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771417541; 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=v/MD8/JxG1ZZMy/G9hl3DxGFbMMaiXeQ3YD2NaIlyy4=; b=S9/ytDc/qXROiQgK7y+gcJVnjXv4oiT3vM2MwnfARqGcgCsMGXfSOS2PHiFy7jN49AaYT93Rj32Q6yySUoD0G+0kol/IFKiLDlm9bz0IzAnWi7gzGrp1q7nHdEDdXR44Xw6ZolnUTlkZHpKsV0aYFny1PXB6QgP8mxBAbZ5jxkw= 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 1771417541606232.48706836560302; Wed, 18 Feb 2026 04:25:41 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 0502E41CC6; Wed, 18 Feb 2026 07:25:41 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 328A343EA0; Wed, 18 Feb 2026 07:10:14 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 48A8E41A12; Wed, 18 Feb 2026 07:10:11 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 505E441BB4 for ; Wed, 18 Feb 2026 07:06:36 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-265-gRwRtQc2Mqeo1i55R-Lk5g-1; Wed, 18 Feb 2026 07:06:34 -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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B62EA195605B for ; Wed, 18 Feb 2026 12:06:33 +0000 (UTC) Received: from kinshicho.usersys.redhat.com (unknown [10.45.226.171]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B516F30001A5 for ; Wed, 18 Feb 2026 12:06:32 +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=-4.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HELO_MISC_IP,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=1771416396; 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=v/MD8/JxG1ZZMy/G9hl3DxGFbMMaiXeQ3YD2NaIlyy4=; b=jDVJjSZo5QQUYPG5W0qeMyEjuXzyEGPMHBUbkJ3ZyfSMWwnhnxsI/h6lQmJlD++/f5Qb71 UOIcSwXmVT/AO0ZoIvVwvPvUkp/ur/fKJuNcKAZ+M/dRSlz52GWI5oqrjBNpXwRyje+M/6 an5D/vyMR4/Pyk8HBSCblpsg9/U23SU= X-MC-Unique: gRwRtQc2Mqeo1i55R-Lk5g-1 X-Mimecast-MFC-AGG-ID: gRwRtQc2Mqeo1i55R-Lk5g_1771416393 To: devel@lists.libvirt.org Subject: [PATCH v3 17/38] qemu_firmware: Split sanity check Date: Wed, 18 Feb 2026 13:05:40 +0100 Message-ID: <20260218120601.230343-18-abologna@redhat.com> In-Reply-To: <20260218120601.230343-1-abologna@redhat.com> References: <20260218120601.230343-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: pAsLUJuZ6xCbUCXKs6DtY8AQ4ZkXYwbo5nxKIoNmjtw_1771416393 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: JMKV73QH3MDVTCMJUCKJK4F5RBIE5Y24 X-Message-ID-Hash: JMKV73QH3MDVTCMJUCKJK4F5RBIE5Y24 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: 1771417543758154100 Content-Type: text/plain; charset="utf-8"; x-default="true" The two checks are semantically different, so it makes sense to perform them separately. We will soon extend the first one. While at it, start printing out the value of isConfidential. We could print the value of each firmware feature it's derived from, but that would make things unnecessarily verbose; at the same time, knowing that libvirt believes that the firmware build is targeting the confidential use case can be useful for debugging so it's worth including it. Signed-off-by: Andrea Bolognani Reviewed-by: Daniel P. Berrang=C3=A9 --- src/qemu/qemu_firmware.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 04e81355df..c78e8e7833 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1590,16 +1590,23 @@ qemuFirmwareSanityCheck(const qemuFirmware *fw, * VMs also don't support EFI variable storage in NVRAM, instead * the secureboot state is hardcoded to enabled. */ - if ((!isConfidential && - (supportsSecureBoot !=3D requiresSMM)) || - (hasEnrolledKeys && !supportsSecureBoot)) { + if (!isConfidential && + supportsSecureBoot !=3D requiresSMM) { VIR_WARN("Firmware description '%s' has invalid set of features: " - "%s =3D %d, %s =3D %d, %s =3D %d", + "%s =3D %d, %s =3D %d (isConfidential =3D %d)", filename, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_REQ= UIRES_SMM), requiresSMM, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_SEC= URE_BOOT), supportsSecureBoot, + isConfidential); + } + if (hasEnrolledKeys && !supportsSecureBoot) { + VIR_WARN("Firmware description '%s' has invalid set of features: " + "%s =3D %d, %s =3D %d", + filename, + qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_SEC= URE_BOOT), + supportsSecureBoot, qemuFirmwareFeatureTypeToString(QEMU_FIRMWARE_FEATURE_ENR= OLLED_KEYS), hasEnrolledKeys); } --=20 2.53.0