From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203790; cv=none; d=zohomail.com; s=zohoarc; b=hSMrFRWgxj2i9TiYwX0vmxN6BeCyW5JXcIpotO3p54Xya9qJNL2YRkNMkGiSFXnjXLNAnYmm4LQCCC5DHVeB7RafqpxMVY1Juy3FKlHPpSKWJ39lu3QJwkyz8mx8amA2G3h3YHe1jazGmSp9/k6tcZLzwk0YXZzg02//gDKFmZw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203790; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jAlwcVgJYsZ+VPsmC0kLWiSYKXnv3Ux+x9EjMhZmrpU=; b=KvCN9aWxON5wbzUSv0hHF37yMW+gwBAHAZfdvoehEOMJCzfOuh4liREilWpPGx9Ed170zca61RU2AozgPgUR/6JQvExDOclwivsTwThHvmcgYhg5qXBPUPo4V8r09KYDRTDxs0PfOTAsVYf43A88knA+bL9aeFeVsfCQM88a8JY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1591203790298889.4860049652328; Wed, 3 Jun 2020 10:03:10 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-376-gvaa5-paMKej5OpmZNFVdQ-1; Wed, 03 Jun 2020 13:02:19 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08C87107ACCA; Wed, 3 Jun 2020 17:02:06 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DE14D5C3FD; Wed, 3 Jun 2020 17:02:05 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9DBCA9702D; Wed, 3 Jun 2020 17:02:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1kZS006281 for ; Wed, 3 Jun 2020 13:01:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id D301061169; Wed, 3 Jun 2020 17:01:46 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 53D8460BF4 for ; Wed, 3 Jun 2020 17:01:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203789; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=jAlwcVgJYsZ+VPsmC0kLWiSYKXnv3Ux+x9EjMhZmrpU=; b=EzApUx5fPtVg9GF2mGyr4dEjbj12g80qmRt3U2R3qgMHKnmok60wxuGg2bbqdkcVkW1tDo MTM1H0Xai/zMYWWWNkodOakGXr5EbXYGNEToUL20D8BZuIpuOPb/cKsWKH84N1wujY6+KM 6Dm1jDLc9jznxBR3U7i2TaDVyOgN/T0= X-MC-Unique: gvaa5-paMKej5OpmZNFVdQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 1/6] domain_conf: Format NS always last Date: Wed, 3 Jun 2020 19:01:33 +0200 Message-Id: <092e9bde7b699db00091224fc00ff40b07134857.1591203520.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" I think that since is kind of a hack, it doesn't deserve place in the front row. Signed-off-by: Michal Privoznik --- src/conf/domain_conf.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1406cf079e..ff0e7e9539 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29880,16 +29880,16 @@ virDomainDefFormatInternalSetRootName(virDomainDe= fPtr def, for (n =3D 0; n < def->nseclabels; n++) virSecurityLabelDefFormat(buf, def->seclabels[n], flags); =20 - if (def->namespaceData && def->ns.format) { - if ((def->ns.format)(buf, def->namespaceData) < 0) - goto error; - } - if (def->keywrap) virDomainKeyWrapDefFormat(buf, def->keywrap); =20 virDomainSEVDefFormat(buf, def->sev); =20 + if (def->namespaceData && def->ns.format) { + if ((def->ns.format)(buf, def->namespaceData) < 0) + goto error; + } + virBufferAdjustIndent(buf, -2); virBufferAsprintf(buf, "\n", rootname); =20 --=20 2.26.2 From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203722; cv=none; d=zohomail.com; s=zohoarc; b=LtAMOQuZLva3zOAZWKSDNvXX4H/f82Pe9cA48lmgicYBJI6UzsOPI4svTLCajLpuK93Gh8qJVHnvBUcwn6ZJN52flAaZQVQsqR4Keodz1tfCvQDnjPshf6h9vUOMG592pmFnrKStGZ5FZEVI/2LiCO6C+HH6jaqqP9vgMBzqQ/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203722; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GT43m+6dgIPCojgwMRmMpb8IMw1VCpk1CARjq6ayf8I=; b=BbpUHtnJE3QHz9yxDzuGKfvnvHCTK2FSggACD/cDQIQND5t+xy1SiQYsQBm9q9IvpiWDaFbKC5py/PCB+BnoGAIupPcCe2nbFmQvzB1GgN4VKO6PFx+8TA4PmNj1g3t4RdOgAUSTDWAIjdqKvgN4ycXx2Ti6mr9WsrqoEqF54Uk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1591203722228184.39714402008735; Wed, 3 Jun 2020 10:02:02 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-324-PCaXnlcmNkeBRLmHHPxhcw-1; Wed, 03 Jun 2020 13:01:58 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D58E4100CCC3; Wed, 3 Jun 2020 17:01:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B6C7D5D9CD; Wed, 3 Jun 2020 17:01:52 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C5E9F9701A; Wed, 3 Jun 2020 17:01:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1n1O006295 for ; Wed, 3 Jun 2020 13:01:49 -0400 Received: by smtp.corp.redhat.com (Postfix) id C585737DD; Wed, 3 Jun 2020 17:01:49 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D2C660BF4 for ; Wed, 3 Jun 2020 17:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203720; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=GT43m+6dgIPCojgwMRmMpb8IMw1VCpk1CARjq6ayf8I=; b=Wo4Q4OXHHEgdAGINyJccndcol07mt35zUnmJhjPLvZTKviZDGwDOra+vmTalMcB2gqK+Tr E6leBtMlr/46SPzhgXY9jOum+Kco+TykHMYZU9COqiMxp6hhnbuD9i3te2bEs55s+iqtgv zWV7QSkPWs/o0K/ujKm7hImfvclENHg= X-MC-Unique: PCaXnlcmNkeBRLmHHPxhcw-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 2/6] conf: Add firmware blob configuration Date: Wed, 3 Jun 2020 19:01:34 +0200 Message-Id: <94a5769c509912637506203c0f1077edadcdd63b.1591203520.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" QEMU has -fw_cfg which allows users to tweak how firmware configures itself and/or provide new configuration blobs. Introduce new element as a direct child of that will hold these new blobs. It's possible to either specify new value as a string or provide a filename which contents then serve as the value. Signed-off-by: Michal Privoznik --- docs/formatdomain.html.in | 30 ++++++++ docs/schemas/domaincommon.rng | 24 +++++++ src/conf/domain_conf.c | 104 ++++++++++++++++++++++++++++ src/conf/domain_conf.h | 11 +++ src/conf/virconftypes.h | 3 + tests/qemuxml2argvdata/fw_cfg.xml | 40 +++++++++++ tests/qemuxml2xmloutdata/fw_cfg.xml | 1 + tests/qemuxml2xmltest.c | 1 + 8 files changed, 214 insertions(+) create mode 100644 tests/qemuxml2argvdata/fw_cfg.xml create mode 120000 tests/qemuxml2xmloutdata/fw_cfg.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 33cec1e6dd..bd67b44af8 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -595,6 +595,36 @@ =20 +

Firmware configuration

+ +

+ Some hypervisors provide unified way to tweak how firmware configures + itself, or may contain tables to be installed for the guest OS, for + instance boot order, ACPI, SMBIOS, etc. It even allows users to defi= ne + their own config blobs. In case of QEMU, these then appear under dom= ain's + sysfs, under /sys/firmware/qemu_fw_cfg. + Since 6.5.0 +

+ +
+  <firmware>
+    <entry name=3D"opt/com.example/name" value=3D"example value"/>
+    <entry name=3D"opt/com.coreos/config" file=3D"/tmp/provision.ign"/&=
gt;
+  </firmware>
+
+ +

+ The firmware element can have multiple entry + child element. Each element then has mandatory name + attribute, which defines the name of the blob and must begin with + "opt/" and to avoid clashing with other names is advise= d to + be in form "opt/$RFQDN/$name" where $RFQDN= is a + reverse fully qualified domain name you control. + Then, the element can have either value attribute (to s= et + the blob value directly), or file attribute (to set the= blob + value from the file). +

+

CPU Allocation

=20
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 6727cd743b..84c455d378 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -49,6 +49,9 @@
         
           
         
+        
+          
+        
         
         
         
@@ -5617,6 +5620,27 @@
     
   
=20
+  
+    
+      
+        
+          
+            
+          
+          
+            
+              
+            
+            
+              
+            
+          
+          
+        
+      
+    
+  
+
   
     
       
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ff0e7e9539..edbd00801a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3385,6 +3385,18 @@ virDomainSEVDefFree(virDomainSEVDefPtr def)
 }
=20
=20
+static void
+virDomainFWCfgDefFree(virDomainFWCfgDefPtr def)
+{
+    if (!def)
+        return;
+
+    VIR_FREE(def->name);
+    VIR_FREE(def->value);
+    VIR_FREE(def->file);
+}
+
+
 void virDomainDefFree(virDomainDefPtr def)
 {
     size_t i;
@@ -3553,6 +3565,10 @@ void virDomainDefFree(virDomainDefPtr def)
=20
     virSysinfoDefFree(def->sysinfo);
=20
+    for (i =3D 0; i < def->nfw_cfgs; i++)
+        virDomainFWCfgDefFree(&def->fw_cfgs[i]);
+    VIR_FREE(def->fw_cfgs);
+
     virDomainRedirFilterDefFree(def->redirfilter);
=20
     for (i =3D 0; i < def->nshmems; i++)
@@ -20921,6 +20937,89 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
 }
=20
=20
+static int
+virDomainFWCfgDefParse(virDomainDefPtr def,
+                       xmlXPathContextPtr ctxt)
+{
+    g_autofree xmlNodePtr *nodes =3D NULL;
+    int n;
+    size_t i;
+
+    if ((n =3D virXPathNodeSet("./firmware/entry", ctxt, &nodes)) < 0)
+        return -1;
+
+    if (n =3D=3D 0)
+        return 0;
+
+    def->fw_cfgs =3D g_new0(virDomainFWCfgDef, n);
+
+    for (i =3D 0; i < n; i++) {
+        g_autofree char *name =3D NULL;
+        g_autofree char *value =3D NULL;
+        g_autofree char *file =3D NULL;
+
+        if (!(name =3D virXMLPropString(nodes[i], "name"))) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("Firmware entry is missing 'name' attribute")=
);
+            goto error;
+        }
+
+        value =3D virXMLPropString(nodes[i], "value");
+        file =3D virXMLPropString(nodes[i], "file");
+
+        if (!value && !file) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("Firmware entry must have either 'value' or "
+                             "'file' attribute"));
+            goto error;
+        }
+
+        def->fw_cfgs[i].name =3D g_steal_pointer(&name);
+        def->fw_cfgs[i].value =3D g_steal_pointer(&value);
+        def->fw_cfgs[i].file =3D g_steal_pointer(&file);
+        def->nfw_cfgs++;
+    }
+
+    return 0;
+
+ error:
+    while (def->nfw_cfgs)
+        virDomainFWCfgDefFree(&def->fw_cfgs[--def->nfw_cfgs]);
+    VIR_FREE(def->fw_cfgs);
+    return -1;
+}
+
+
+static void
+virDomainFWCfgDefFormat(virBufferPtr buf,
+                        const virDomainDef *def)
+{
+    size_t i;
+
+    if (def->nfw_cfgs =3D=3D 0)
+        return;
+
+    virBufferAddLit(buf, "\n");
+    virBufferAdjustIndent(buf, 2);
+
+    for (i =3D 0; i < def->nfw_cfgs; i++) {
+        const virDomainFWCfgDef *f =3D &def->fw_cfgs[i];
+
+        virBufferAsprintf(buf, "name);
+
+        if (f->value)
+            virBufferEscapeString(buf, "value=3D'%s'", f->value);
+        else
+            virBufferEscapeString(buf, "file=3D'%s'", f->file);
+
+        virBufferAddLit(buf, "/>\n");
+    }
+
+    virBufferAdjustIndent(buf, -2);
+    virBufferAddLit(buf, "\n");
+}
+
+
 static virDomainDefPtr
 virDomainDefParseXML(xmlDocPtr xml,
                      xmlXPathContextPtr ctxt,
@@ -22202,6 +22301,9 @@ virDomainDefParseXML(xmlDocPtr xml,
         def->os.smbios_mode =3D mode;
     }
=20
+    if (virDomainFWCfgDefParse(def, ctxt) < 0)
+        goto error;
+
     if (virDomainKeyWrapDefParseXML(def, ctxt) < 0)
         goto error;
=20
@@ -29512,6 +29614,8 @@ virDomainDefFormatInternalSetRootName(virDomainDefP=
tr def,
     if (def->sysinfo)
         ignore_value(virSysinfoFormat(buf, def->sysinfo));
=20
+    virDomainFWCfgDefFormat(buf, def);
+
     if (def->os.bootloader) {
         virBufferEscapeString(buf, "%s\n",
                               def->os.bootloader);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index e152c599ca..2dad4dc08a 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2481,6 +2481,14 @@ struct _virDomainVirtioOptions {
     virTristateSwitch packed;
 };
=20
+
+struct _virDomainFWCfgDef {
+    char *name;
+    char *value;
+    char *file;
+};
+
+
 /*
  * Guest VM main configuration
  *
@@ -2624,6 +2632,9 @@ struct _virDomainDef {
     size_t npanics;
     virDomainPanicDefPtr *panics;
=20
+    size_t nfw_cfgs;
+    virDomainFWCfgDefPtr fw_cfgs;
+
     /* Only 1 */
     virDomainWatchdogDefPtr watchdog;
     virDomainMemballoonDefPtr memballoon;
diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h
index 1c62cde251..89440e1ac8 100644
--- a/src/conf/virconftypes.h
+++ b/src/conf/virconftypes.h
@@ -359,3 +359,6 @@ typedef virDomainXMLPrivateDataCallbacks *virDomainXMLP=
rivateDataCallbacksPtr;
=20
 typedef struct _virDomainXenbusControllerOpts virDomainXenbusControllerOpt=
s;
 typedef virDomainXenbusControllerOpts *virDomainXenbusControllerOptsPtr;
+
+typedef struct _virDomainFWCfgDef virDomainFWCfgDef;
+typedef virDomainFWCfgDef *virDomainFWCfgDefPtr;
diff --git a/tests/qemuxml2argvdata/fw_cfg.xml b/tests/qemuxml2argvdata/fw_=
cfg.xml
new file mode 100644
index 0000000000..ff3d5b9693
--- /dev/null
+++ b/tests/qemuxml2argvdata/fw_cfg.xml
@@ -0,0 +1,40 @@
+
+  QEMUGuest1
+  c7a5fdbd-edaf-9455-926a-d65c16db1809
+  219100
+  219100
+  1
+  
+    
+    
+  
+  
+    hvm
+    
+  
+  
+  destroy
+  restart
+  destroy
+  
+    /usr/bin/qemu-system-i386
+    
+      
+      
+      
+      
+ + +
+ + +
+ + + + + +
+ + + diff --git a/tests/qemuxml2xmloutdata/fw_cfg.xml b/tests/qemuxml2xmloutdata= /fw_cfg.xml new file mode 120000 index 0000000000..d6921a9c64 --- /dev/null +++ b/tests/qemuxml2xmloutdata/fw_cfg.xml @@ -0,0 +1 @@ +../qemuxml2argvdata/fw_cfg.xml \ No newline at end of file diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index dcc7b29ded..3d3b65534b 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -1125,6 +1125,7 @@ mymain(void) DO_TEST("shmem-plain-doorbell", NONE); DO_TEST("smbios", NONE); DO_TEST("smbios-multiple-type2", NONE); + DO_TEST("fw_cfg", NONE); =20 DO_TEST_CAPS_LATEST("os-firmware-bios"); DO_TEST_CAPS_LATEST("os-firmware-efi"); --=20 2.26.2 From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203748; cv=none; d=zohomail.com; s=zohoarc; b=C4D+lZPtwJzF1H3Ewu6ZT6fdEb8fXD2+qXV3hk07My6GcEXm61YKaqNAjr7/+mgbhAowenBZ99NplTkv1wfLYNOXKjR5EjR44b4UqNlCGfWP5kD1C9t+1XhHxzRLpFV9Z/pcpBE5RbErL7767OnR2FI46/nIVbmOFrCTJXK0Dzw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203748; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PqjrjzYDM7Ya+nvjz4wLIJ9FhkgdkjAvIUabTNTDvHA=; b=LM8dB0Vo/KetWIGNJGrdFu1jBnPUr+pVEpMn5HplNOHx0zA81WYaM2msq7AMgEXb52DlFymcIm5FrbQ2WFZ67G1bUXFxLktqfrV7JKGpuekl+1iZhUPPoEvl6ENLTENqCRraTy9f1uLCI+PAEZ6k4Kj69FhhVT+sYAOk5fuT4Bg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 159120374825483.59450408141652; Wed, 3 Jun 2020 10:02:28 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-482-S1OWmL9eN8aeFF3J-OK-Lg-1; Wed, 03 Jun 2020 13:02:14 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D2DDC1902EA1; Wed, 3 Jun 2020 17:02:08 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B45D198FF1; Wed, 3 Jun 2020 17:02:08 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 80A5A1809554; Wed, 3 Jun 2020 17:02:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1qxu006307 for ; Wed, 3 Jun 2020 13:01:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id DA33560C81; Wed, 3 Jun 2020 17:01:52 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5B12460BF4 for ; Wed, 3 Jun 2020 17:01:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203746; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=PqjrjzYDM7Ya+nvjz4wLIJ9FhkgdkjAvIUabTNTDvHA=; b=YXXA9fmUOOHrxH4q3oxuUR+NKMsqsfL7r2cmlfwkdjbIdSET1/fp4PneYUPU9qPIaIuLMt EOQhMJ7rmRDwgjMEBcK0vFxcaz+vbC0dUoEfcG5kclzbfa1P0utmiiP4JycMZzJn4FU/gw cQzWkmh3fgaMQ4DGuHSVorKWwqm/5Ig= X-MC-Unique: S1OWmL9eN8aeFF3J-OK-Lg-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 3/6] qemu: Validate firmware blob configuration Date: Wed, 3 Jun 2020 19:01:35 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" There are recommendations and limitations to the name of the config blobs we need to follow [1]. Firstly, we don't want users to change any value only add new blobs. This means, that the name must have "opt/" prefix and at the same time must not begin with "opt/ovmf" nor "opt/org.qemu" as these are reserved for OVMF or QEMU respectively. Secondly, there is a limit (FW_CFG_MAX_FILE_PATH in qemu.git) of 56 characters for filename. 1: docs/specs/fw_cfg.txt from qemu.git Signed-off-by: Michal Privoznik --- src/qemu/qemu_validate.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 584d1375b8..1274159b39 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -762,6 +762,41 @@ qemuValidateDefGetVcpuHotplugGranularity(const virDoma= inDef *def) } =20 =20 +#define QEMU_FW_CFG_MAX_FILE_PATH 55 +static int +qemuValidateDomainDefFWCfg(const virDomainDef *def, + virQEMUCapsPtr qemuCaps G_GNUC_UNUSED) +{ + size_t i; + + for (i =3D 0; i < def->nfw_cfgs; i++) { + const virDomainFWCfgDef *f =3D &def->fw_cfgs[i]; + + if (!STRPREFIX(f->name, "opt/")) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Invalid firmware name")); + return -1; + } + + if (STRPREFIX(f->name, "opt/ovmf/") || + STRPREFIX(f->name, "opt/org.qemu/")) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("That firmware name is reserved")); + return -1; + } + + if (f->file && + strlen(f->file) > QEMU_FW_CFG_MAX_FILE_PATH) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("firmware file too long")); + return -1; + } + } + + return 0; +} + + int qemuValidateDomainDef(const virDomainDef *def, void *opaque) @@ -978,6 +1013,9 @@ qemuValidateDomainDef(const virDomainDef *def, } } =20 + if (qemuValidateDomainDefFWCfg(def, qemuCaps) < 0) + return -1; + return 0; } =20 --=20 2.26.2 From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203800; cv=none; d=zohomail.com; s=zohoarc; b=F6dnHp18E6we9JkiJOdCltla/ify6L1bbBoEQgr6sMIE7Gr9IAktXMFnJoxiv6UAZigf1HbkSH/467+R1Cu3zjQqoz4lkiNGrMvzsTwq3JLPcI6kJbTRCK8zwSOX/fDtryYapzaTogfX8FP5kv5yiRxGYkBOnNGxUFVimxJ3rHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203800; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lcQsA7mXdFxFxVjtxJHkPRG0oYwPa/ZX4qPKRvbKUm4=; b=hCRPtix0WsbC+bkKLOWBsTm1OlvT3o5/SSBOKY2MLUZqbCwBhBapDn3abKjzb9k9f7wFwJmn6E2ZTPEYKu0i0DMogH48SOENJvZBoY+ytK3lmhblJQRZ5si0knFmKY8hHExeGRJogLUmhKjHq8ZSWxAkOvx/msq1aQZ5fGrmYaA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1591203800938750.6755675324284; Wed, 3 Jun 2020 10:03:20 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-379-dbJ85K-0OgqLrm1kBU5lYQ-1; Wed, 03 Jun 2020 13:02:17 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4393984B8A0; Wed, 3 Jun 2020 17:02:11 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2388B98FF7; Wed, 3 Jun 2020 17:02:11 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E945A97027; Wed, 3 Jun 2020 17:02:10 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1rqf006315 for ; Wed, 3 Jun 2020 13:01:53 -0400 Received: by smtp.corp.redhat.com (Postfix) id E185F60C81; Wed, 3 Jun 2020 17:01:53 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 38E3A60BF4 for ; Wed, 3 Jun 2020 17:01:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203799; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=lcQsA7mXdFxFxVjtxJHkPRG0oYwPa/ZX4qPKRvbKUm4=; b=Es9l1k0jgLvCVYqEZLp5i7pAnRa7RvjsLUGwxZLusadOw5hqm5gOR5RWxicDgkFgwjaXoA T+Mw7zL9ihilzx5Vi8oJlWz9vuOzKbxgqFy3sVrSp+aq5xUmXnEp8MyAFE4ss+4Su6fxaH 5tCVCsWApYbCNOLFzmsIVvbvTuLN1I4= X-MC-Unique: dbJ85K-0OgqLrm1kBU5lYQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 4/6] qemu: Introduce fw_cfg capability Date: Wed, 3 Jun 2020 19:01:36 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" This capability tracks whether QEMU supports -fw_cfg command line option, more specifically whether it allows specifying filename. There are some releases of QEMU which support -fw_cfg but not filename. If this is ever a problem we can refine the capability later on. Signed-off-by: Michal Privoznik --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 + 47 files changed, 52 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f12769635a..dbf8d6d45c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -582,6 +582,9 @@ VIR_ENUM_IMPL(virQEMUCaps, "tcg", "virtio-blk-pci.scsi.default.disabled", "pvscsi", + + /* 370 */ + "fw_cfg", ); =20 =20 @@ -3279,6 +3282,7 @@ static struct virQEMUCapsCommandLineProps virQEMUCaps= CommandLine[] =3D { { "overcommit", NULL, QEMU_CAPS_OVERCOMMIT }, { "smp-opts", "dies", QEMU_CAPS_SMP_DIES }, { "fsdev", "multidevs", QEMU_CAPS_FSDEV_MULTIDEVS }, + { "fw_cfg", "file", QEMU_CAPS_FW_CFG }, }; =20 static int diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 076ecad0f7..7e5f007771 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -564,6 +564,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_VIRTIO_BLK_SCSI_DEFAULT_DISABLED, /* virtio-blk-pci.scsi dis= abled by default */ QEMU_CAPS_SCSI_PVSCSI, /* -device pvscsi */ =20 + /* 370 */ + QEMU_CAPS_FW_CFG, /* -fw_cfg command line option */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qem= ucapabilitiesdata/caps_2.10.0.aarch64.xml index db8a298873..0848b1e18b 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml @@ -142,6 +142,7 @@ + 2010000 0 61700287 diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemuc= apabilitiesdata/caps_2.10.0.ppc64.xml index 15e8933300..82a37edd9c 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml @@ -142,6 +142,7 @@ + 2010000 0 42900287 diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemuc= apabilitiesdata/caps_2.10.0.s390x.xml index 90c42cdf4f..7a1ad3d173 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml @@ -108,6 +108,7 @@ + 2010000 0 39100287 diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemu= capabilitiesdata/caps_2.10.0.x86_64.xml index cb02723ada..f82ea38a26 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -185,6 +185,7 @@ + 2010000 0 43100287 diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemuc= apabilitiesdata/caps_2.11.0.s390x.xml index d27f656ae0..1108aa46d0 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml @@ -115,6 +115,7 @@ + 2011000 0 39100288 diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemu= capabilitiesdata/caps_2.11.0.x86_64.xml index 5245fc77dc..91cb5f80a6 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml @@ -191,6 +191,7 @@ + 2011000 0 43100288 diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qem= ucapabilitiesdata/caps_2.12.0.aarch64.xml index 38d36400e4..78070c0401 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml @@ -158,6 +158,7 @@ + 2012000 0 61700289 diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemuc= apabilitiesdata/caps_2.12.0.ppc64.xml index 53abf2debb..45d3baf080 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -159,6 +159,7 @@ + 2011090 0 42900289 diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemuc= apabilitiesdata/caps_2.12.0.s390x.xml index 880e5f137a..f9b92d11f2 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml @@ -127,6 +127,7 @@ + 2012000 0 39100289 diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemu= capabilitiesdata/caps_2.12.0.x86_64.xml index 319dd6f2c3..8688dc32d5 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -200,6 +200,7 @@ + 2011090 0 43100289 diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.4.0.x86_64.xml index 7f0fe3b9aa..310f69499f 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -136,6 +136,7 @@ + 2004000 0 43100242 diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.5.0.x86_64.xml index efb4ffa019..af9b9e96fd 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -142,6 +142,7 @@ + 2005000 0 43100243 diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_2.6.0.aarch64.xml index 0ce5deb6e9..ec17ca5c27 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml @@ -125,6 +125,7 @@ + 2006000 0 61700244 diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_2.6.0.ppc64.xml index 13573cfd03..13e6df006e 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml @@ -121,6 +121,7 @@ + 2006000 0 42900244 diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.6.0.x86_64.xml index 0c9f594a65..c25731997e 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -154,6 +154,7 @@ + 2006000 0 43100244 diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_2.7.0.s390x.xml index 571d748f6c..2421b46f35 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml @@ -92,6 +92,7 @@ + 2007000 0 39100245 diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.7.0.x86_64.xml index c97fa18a1f..9f25bd17ec 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -159,6 +159,7 @@ + 2007000 0 43100245 diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_2.8.0.s390x.xml index be5cf4977b..083562f641 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml @@ -97,6 +97,7 @@ + 2007093 0 39100246 diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.8.0.x86_64.xml index 9a2b1f83ac..5426e8a54b 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -162,6 +162,7 @@ + 2008000 0 43100246 diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_2.9.0.ppc64.xml index 0c32a1c305..fe49896e72 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml @@ -134,6 +134,7 @@ + 2009000 0 42900247 diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_2.9.0.s390x.xml index c93cd4211f..32861f67ba 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml @@ -102,6 +102,7 @@ + 2009000 0 39100247 diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.9.0.x86_64.xml index 122d9509f1..f241cc7a59 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -179,6 +179,7 @@ + 2009000 0 43100247 diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_3.0.0.ppc64.xml index b81ed605d3..95f982eadf 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -161,6 +161,7 @@ + 2012050 0 42900239 diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml b/tests/qemu= capabilitiesdata/caps_3.0.0.riscv32.xml index e2c87dafe3..35d08c67ec 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml @@ -97,6 +97,7 @@ + 3000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_3.0.0.riscv64.xml index 0b8e5589db..42635c2e6d 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml @@ -97,6 +97,7 @@ + 3000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_3.0.0.s390x.xml index 189bc09288..96d8953496 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml @@ -130,6 +130,7 @@ + 3000000 0 39100239 diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_3.0.0.x86_64.xml index 40cff641a8..80ab4914c6 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml @@ -206,6 +206,7 @@ + 3000000 0 43100239 diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_3.1.0.ppc64.xml index 4e47e0a581..3a21eb3aab 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -166,6 +166,7 @@ + 3000091 0 42900240 diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_3.1.0.x86_64.xml index 3dbda4b3f3..b1f4794559 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -209,6 +209,7 @@ + 3000092 0 43100240 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.aarch64.xml index 2b5210338f..b1047ca044 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -172,6 +172,7 @@ + 4000000 0 61700240 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.0.0.ppc64.xml index 582cbdc8c2..a4916c2279 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -180,6 +180,7 @@ + 4000000 0 42900240 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.riscv32.xml index 199911d254..ec7c6b05e1 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -173,6 +173,7 @@ + 4000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_4.0.0.riscv64.xml index 4ddb79d2f8..d8924a10e8 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -173,6 +173,7 @@ + 4000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_4.0.0.s390x.xml index d04129c327..671c28cb82 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -138,6 +138,7 @@ + 4000000 0 39100240 diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.0.0.x86_64.xml index bf7735caf3..a08a1655d4 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -214,6 +214,7 @@ + 4000000 0 43100240 diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.1.0.x86_64.xml index 8ce0f80e8a..cde7b85428 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -220,6 +220,7 @@ + 4001000 0 43100241 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_4.2.0.aarch64.xml index 154f70443e..11d487eefe 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -184,6 +184,7 @@ + 4001050 0 61700242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.ppc64.xml index eeec181f62..4d44cd4ac6 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -185,6 +185,7 @@ + 4001050 0 42900242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.s390x.xml index 4c0908294a..6db5926aaa 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -148,6 +148,7 @@ + 4002000 0 39100242 diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_4.2.0.x86_64.xml index 50ed35f092..fedd1ea13b 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -228,6 +228,7 @@ + 4002000 0 43100242 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.aarch64.xml index 9b24490137..7f993b38e1 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -193,6 +193,7 @@ + 5000000 0 61700241 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.0.0.ppc64.xml index 69e5b4c8fa..409120262e 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -201,6 +201,7 @@ + 5000000 0 42900241 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemu= capabilitiesdata/caps_5.0.0.riscv64.xml index 7a091d27db..fb4956f144 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -189,6 +189,7 @@ + 5000000 0 0 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.0.0.x86_64.xml index ba39fef713..d2c03444d5 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -234,6 +234,7 @@ + 5000000 0 43100241 diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.1.0.x86_64.xml index c2bc121f73..aa11246b80 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -234,6 +234,7 @@ + 5000050 0 43100242 --=20 2.26.2 From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203747; cv=none; d=zohomail.com; s=zohoarc; b=XYCsC4aIizI5Nkx4gReW6qH+ETxUQbqudhwOtDEaEIR+NYDz2AG874lUyVYpp6YBqUjAJ1pPaTzUHh32CcCAh/E02hzOfWtcx5Mk7MU6+eagxKhgDDx/q2HZP5toJc2o/ZcD/vq0IGTylqNaGjh0tSI3pBIce6iP9yysM/cKw+M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203747; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7LYVuNPis9VVO9h2l07ZXpB5ca7izMZsrkCWu3iSZmM=; b=d2zeH1kztukc4wrGRXHobnCyrvirfOhTeXCMdpbYbu3vcC79n8wVtoqoQZyc2DByNxLKirRLissU3ESmDjeg8A+O1WItUZuZp0H5vJ0JzdOR3zSAg7bTCT0faKidshrJVYnupNxct9tr4d1zeoXgARgqcmARwuTlXCmiNCGSo/E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1591203747353557.0114451920912; Wed, 3 Jun 2020 10:02:27 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-169-idB72UAZOpG9dXCSuzB48Q-1; Wed, 03 Jun 2020 13:02:23 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E9000EC1A4; Wed, 3 Jun 2020 17:02:15 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CBD5C5C583; Wed, 3 Jun 2020 17:02:15 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9A1EB180954D; Wed, 3 Jun 2020 17:02:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1slK006325 for ; Wed, 3 Jun 2020 13:01:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id BF18D60C81; Wed, 3 Jun 2020 17:01:54 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3FC4260BF4 for ; Wed, 3 Jun 2020 17:01:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203746; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=7LYVuNPis9VVO9h2l07ZXpB5ca7izMZsrkCWu3iSZmM=; b=PXRh/0bLo+T3bEIkhAduy01EwXyIE0QSakJLFK2nyW8qBrlxwpww2QKKUMrsclVsN98Wlt 7vA7XKh8S3pyYpCDQmf2jKmLBjOSdXGTm2zedkqQpcMsAj1V1AJx7wX5V6sClRpjaZZbjg 1LpFDsXeDzqouqnUAAzSkzicaa6XBBQ= X-MC-Unique: idB72UAZOpG9dXCSuzB48Q-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 5/6] secdrivers: Relabel firmware config files Date: Wed, 3 Jun 2020 19:01:37 +0200 Message-Id: <69e34d39f5b50636ebc9ab2eb69ce879fad7ba86.1591203520.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" For the case where -fw_cfg uses a file, we need to set the seclabels on it to allow QEMU the access. While QEMU allows writing into the file (if specified on the command line), so far we are enabling reading only and thus we can use read only label (in case of SELinux). Signed-off-by: Michal Privoznik --- src/security/security_dac.c | 14 ++++++++++++++ src/security/security_selinux.c | 13 +++++++++++++ src/security/virt-aa-helper.c | 6 ++++++ 3 files changed, 33 insertions(+) diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 7b95a6f86d..a1340c242c 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1991,6 +1991,12 @@ virSecurityDACRestoreAllLabel(virSecurityManagerPtr = mgr, rc =3D -1; } =20 + for (i =3D 0; i < def->nfw_cfgs; i++) { + if (def->fw_cfgs[i].file && + virSecurityDACRestoreFileLabel(mgr, def->fw_cfgs[i].file) < 0) + rc =3D -1; + } + if (def->os.loader && def->os.loader->nvram && virSecurityDACRestoreFileLabel(mgr, def->os.loader->nvram) < 0) rc =3D -1; @@ -2173,6 +2179,14 @@ virSecurityDACSetAllLabel(virSecurityManagerPtr mgr, if (virSecurityDACGetImageIds(secdef, priv, &user, &group)) return -1; =20 + for (i =3D 0; i < def->nfw_cfgs; i++) { + if (def->fw_cfgs[i].file && + virSecurityDACSetOwnership(mgr, NULL, + def->fw_cfgs[i].file, + user, group, true) < 0) + return -1; + } + if (def->os.loader && def->os.loader->nvram && virSecurityDACSetOwnership(mgr, NULL, def->os.loader->nvram, diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index 7bb7c2b7b1..c5a8e33bd7 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2786,6 +2786,12 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManager= Ptr mgr, mgr) < 0) rc =3D -1; =20 + for (i =3D 0; i < def->nfw_cfgs; i++) { + if (def->fw_cfgs[i].file && + virSecuritySELinuxRestoreFileLabel(mgr, def->fw_cfgs[i].file, = true) < 0) + rc =3D -1; + } + if (def->os.loader && def->os.loader->nvram && virSecuritySELinuxRestoreFileLabel(mgr, def->os.loader->nvram, tru= e) < 0) rc =3D -1; @@ -3194,6 +3200,13 @@ virSecuritySELinuxSetAllLabel(virSecurityManagerPtr = mgr, mgr) < 0) return -1; =20 + for (i =3D 0; i < def->nfw_cfgs; i++) { + if (def->fw_cfgs[i].file && + virSecuritySELinuxSetFilecon(mgr, def->fw_cfgs[i].file, + data->content_context, true) < 0) + return -1; + } + /* This is different than kernel or initrd. The nvram store * is really a disk, qemu can read and write to it. */ if (def->os.loader && def->os.loader->nvram && diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 6e6dd1b1db..12beef6442 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -1175,6 +1175,12 @@ get_files(vahControl * ctl) } } =20 + for (i =3D 0; i < ctl->def->nfw_cfgs; i++) { + if (ctl->def->fw_cfgs[i].file && + vah_add_file(&buf, ctl->def->fw_cfgs[i].file, "r") !=3D 0) + goto cleanup; + } + for (i =3D 0; i < ctl->def->nshmems; i++) { virDomainShmemDef *shmem =3D ctl->def->shmems[i]; /* explicit server paths can be on any model to overwrites default= s. --=20 2.26.2 From nobody Fri May 3 14:01:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1591203735; cv=none; d=zohomail.com; s=zohoarc; b=DnpVi/V5pB7fuKapVjkzJPRV6bcEKiEL+ClxwfSIxXc66wcI2GPLnTgkVDYcq4CwhDC9o7ImhkxRiW70lg2VGMfgOyAq8WngYRcoVqH3H0+damwvzIYQCrMDXzXvbybseDSgND3plRmTSvUJF4FxUx0IsGaPR8Z1UiRnVd8/3QE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591203735; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TurvwW0Opoosu2dOcdqQXkgvfWUn3Va/QqL3aIAfjo0=; b=gj64mngMxKpKsny0b4o8tjgcfYyCTytoBvM8hjVO2kxeJAA1CWpsp+pcsKXyXuauZYid2oQO/KG5gd8UnnlVBjat3SHWGGeOFHFSvzz7jMZLRvLGYjM4SZiWFNh+kF7Dwj8YVh7sLJmaZ/3S+xusO4jGkR28n9JAWLvzhxf1jBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by mx.zohomail.com with SMTPS id 1591203735293840.4488035023862; Wed, 3 Jun 2020 10:02:15 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-398-X7Q4bP5-P4OUypW695N2RQ-1; Wed, 03 Jun 2020 13:02:11 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4A95E80058E; Wed, 3 Jun 2020 17:02:06 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0E06D98FE8; Wed, 3 Jun 2020 17:02:06 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C52E91809543; Wed, 3 Jun 2020 17:02:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 053H1twk006333 for ; Wed, 3 Jun 2020 13:01:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9D0E460BF4; Wed, 3 Jun 2020 17:01:55 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.193.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1DDC460C81 for ; Wed, 3 Jun 2020 17:01:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591203733; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=TurvwW0Opoosu2dOcdqQXkgvfWUn3Va/QqL3aIAfjo0=; b=JUohoTN/uP41LfT+jPN0Pagfq/JNV7IPdBQIaDOM3MAnYN4oGBQ3mbH/NTkXFFCbJM9ZO5 OSRMqRKBRjgO/Kzr8g3Nui825eYef7wXJPNEdpWcpT2L7SfcmEWauUlMWicIath5CUlZLM NWlbBAYl4VsFWajV8jPAJ3i9w09iyTU= X-MC-Unique: X7Q4bP5-P4OUypW695N2RQ-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 6/6] qemu: Generate command line for -fw_cfg Date: Wed, 3 Jun 2020 19:01:38 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" This is pretty straightforward and self explanatory. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=3D1837990 Signed-off-by: Michal Privoznik --- src/qemu/qemu_command.c | 38 ++++++++++++++++++++++++++++++ tests/qemuxml2argvdata/fw_cfg.args | 32 +++++++++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 3 files changed, 71 insertions(+) create mode 100644 tests/qemuxml2argvdata/fw_cfg.args diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 419eca5675..b1e047690b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5794,6 +5794,41 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd, } =20 =20 +static int +qemuBuildFWCfgCommandLine(virCommandPtr cmd, + virQEMUCapsPtr qemuCaps, + const virDomainDef *def) +{ + size_t i; + + if (def->nfw_cfgs =3D=3D 0) + return 0; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_FW_CFG)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("fw_cfg is not supported with this QEMU")); + return -1; + } + + for (i =3D 0; i < def->nfw_cfgs; i++) { + const virDomainFWCfgDef *f =3D &def->fw_cfgs[i]; + g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; + + virBufferAsprintf(&buf, "name=3D%s", f->name); + + if (f->value) + virBufferEscapeString(&buf, ",string=3D%s", f->value); + else + virBufferEscapeString(&buf, ",file=3D%s", f->file); + + virCommandAddArg(cmd, "-fw_cfg"); + virCommandAddArgBuffer(cmd, &buf); + } + + return 0; +} + + static int qemuBuildVMGenIDCommandLine(virCommandPtr cmd, const virDomainDef *def) @@ -9634,6 +9669,9 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, if (qemuBuildSmbiosCommandLine(cmd, driver, def) < 0) return NULL; =20 + if (qemuBuildFWCfgCommandLine(cmd, qemuCaps, def) < 0) + return NULL; + if (qemuBuildVMGenIDCommandLine(cmd, def) < 0) return NULL; =20 diff --git a/tests/qemuxml2argvdata/fw_cfg.args b/tests/qemuxml2argvdata/fw= _cfg.args new file mode 100644 index 0000000000..95cbe55435 --- /dev/null +++ b/tests/qemuxml2argvdata/fw_cfg.args @@ -0,0 +1,32 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +QEMU_AUDIO_DRV=3Dnone \ +/usr/bin/qemu-system-i386 \ +-name QEMUGuest1 \ +-S \ +-machine pc,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff \ +-m 214 \ +-realtime mlock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-fw_cfg 'name=3Dopt/com.example/name,string=3Dexample value' \ +-fw_cfg name=3Dopt/com.coreos/config,file=3D/tmp/provision.ign \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,\ +server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-usb \ +-drive file=3D/dev/HostVG/QEMUGuest1,format=3Draw,if=3Dnone,id=3Ddrive-ide= 0-0-0 \ +-device ide-hd,bus=3Dide.0,unit=3D0,drive=3Ddrive-ide0-0-0,id=3Dide0-0-0,b= ootindex=3D1 \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x3 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3103cac884..dc10b30fe5 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1684,6 +1684,7 @@ mymain(void) DO_TEST("smbios", NONE); DO_TEST_PARSE_ERROR("smbios-date", NONE); DO_TEST_PARSE_ERROR("smbios-uuid-match", NONE); + DO_TEST("fw_cfg", QEMU_CAPS_FW_CFG); =20 DO_TEST("watchdog", NONE); DO_TEST("watchdog-device", NONE); --=20 2.26.2