From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812750; cv=none; d=zohomail.com; s=zohoarc; b=cS9+xFVsFio3xUw2WZMOKZFursJBnZLgH24lWhvaEl4YCzuvNRknlRPNAHqyzC0f8xiPwY4n1MsSMRqROFjeuLjQd3Qpyil7+M6dkIetxnEOqlrz/qF9MEjVM6rA0FS0w/PZqc+B24DHMGTbXrBrzDq9wJ1Sj+Ad4oLeR1zrK14= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812750; h=Content-Type:Content-Transfer-Encoding:Cc: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=gJKVSj/ug0iCWN1jdFonN0pLaJMULxUPAWZez6AmWyA=; b=iiQRAcpp2uu338rkYKw6AbBe9FUvM781ljyN2swHnPHsKbePSrnpnVjLF9o1Rt0EoD1qldhSncgxdeV2uPLhTMZ2jzMcF2jBpVNvazhks7DYxcU/6cKma0U6sobUUpFs8gQuqiqr6FSz6M+AsRFVvdGhpR0aDraBQ+Go3CxB3R8= 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 159181275053592.99310819094808; Wed, 10 Jun 2020 11:12:30 -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-166-RkwZtnq2NTeRlBH6gJYh_w-1; Wed, 10 Jun 2020 14:12:26 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8021A107ACF3; Wed, 10 Jun 2020 18:12:20 +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 3E99A6109F; Wed, 10 Jun 2020 18:12:20 +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 0068BB34A6; Wed, 10 Jun 2020 18:12:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AIC8dp020106 for ; Wed, 10 Jun 2020 14:12:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id DAE8D10073DE; Wed, 10 Jun 2020 18:12:08 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D6B2110F8E1D for ; Wed, 10 Jun 2020 18:12:07 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 591FE101A525 for ; Wed, 10 Jun 2020 18:12:07 +0000 (UTC) Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-430-_4LaR1_tOU6OKJu7oAD0CQ-1; Wed, 10 Jun 2020 14:12:04 -0400 Received: by mail-qt1-f195.google.com with SMTP id j32so2497402qte.10 for ; Wed, 10 Jun 2020 11:12:04 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812749; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=gJKVSj/ug0iCWN1jdFonN0pLaJMULxUPAWZez6AmWyA=; b=EcTesL/H5ZZt7yAWfM0I+rXjhUddx9iUoudk9D+m75fYRHQ0Y/WzgOciZBQWUwpd9ONO6i KVCIJFyId2OwQXVVJisNCLQivS9McgrY2tck6R1/8/DraRZTaEg9BKR2fM124vnyxqvq/2 juPNTbTL8V5MRyixpu3dpvX1azy/uCk= X-MC-Unique: RkwZtnq2NTeRlBH6gJYh_w-1 X-MC-Unique: _4LaR1_tOU6OKJu7oAD0CQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gJKVSj/ug0iCWN1jdFonN0pLaJMULxUPAWZez6AmWyA=; b=qOSB8+TBJ0xQ5M8GRB/Io3vyX4RREwawmhL0DIXolJv/1zM+x+PE7wbd3o1eD6XY3e iKFivfAC/thVqkEDGGxU046jomx5/gJBPFMEQUOUVcks5KMpITTo+Awuj0DWfucSUnw+ pMtMXi4bWXjKT3pbK9UMcV9fGvpZu7PrIwBeG48fgy6zLMUyiz1W+4So9EFa1nDpOTIV qeKYwG+z9wXFIlptNxxkz8RJA61e3pZ863v33vKCmeuQXIihnsc4FkiG0n9vjtfxuSQJ 59q6YH14CItj7YbLGqA8qdpY8EoBmfjM10ggUAPSiWKzEEbDkBFBB+BGlVlg4yPJS0FH XedA== X-Gm-Message-State: AOAM533UVOoPFq+jOTANI4g3Z22UZeEavX4iS6rjgOBaq0WYe7ZZ5sti szl/eFSrk4uej6mq7ZToP2XMAmZj X-Google-Smtp-Source: ABdhPJxs5qeIkzZxmrxhqVsVJjq9PS6rr4dH932A8+VjNl7FiixLaXnHgMN+ZZwYKx1FWuKeYsCIUA== X-Received: by 2002:ac8:32dc:: with SMTP id a28mr4604206qtb.158.1591812724062; Wed, 10 Jun 2020 11:12:04 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 01/10] docs: documentation and schema for the new TPM Proxy model Date: Wed, 10 Jun 2020 15:11:43 -0300 Message-Id: <20200610181152.374479-2-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.12 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 4.1.0 introduced a new device type called TPM Proxy, currently implemented by PPC64 guests via a new virtual device called 'spapr-tpm-proxy' (see QEMU 0fb6bd073230 for more info). The TPM Proxy device interacts with a TPM Resource Manager, a host device capable of multiplexing the host TPM with multiple processes. This allows multiple guests to access some TPM features at the same time. Note that this mode of operation does not provide full TPM features to be available for the guest - for that case the guest still needs to assign a vTPM device (tpm-spapr for PPC64 guests). Although redundant, there is currently no technical limitation for a guest to assign both a vTPM and a TPM Proxy at the same time. This patch adds documentation and schema for a new TPM model type called 'spapr-tpm-proxy' that creates this new TPM Proxy device. This model is valid only for the 'passthrough' backend. An example of a TPM Proxy device connected to a TPM Resource Manager '/dev/tpmrm0' will look like this: Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- docs/formatdomain.html.in | 19 ++++++++++++++++++- docs/schemas/domaincommon.rng | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 20c28a47e3..f538c3ff1a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -8840,6 +8840,18 @@ qemu-kvm -net nic,model=3D? /dev/null backend device is a TPM 2.0. Since 6.1.0, pSeries guests on PPC64 are supported and the default is tpm-spapr. + + Since 6.4.0, a new model called + spapr-tpm-proxy was added for pSeries guests. This = model + only works with the passthrough backend. It creates= a + TPM Proxy device that communicates with an existing TPM Resource= Manager + in the host, for example /dev/tpmrm0, enabling the = guest to + run in secure virtual machine mode with the help of an Ultraviso= r. Adding + a TPM Proxy to a pSeries guest brings no security benefits unles= s the guest + is running on a PPC64 host that has an Ultravisor and a TPM Reso= urce Manager. + Only one TPM Proxy device is allowed per guest, but a TPM Proxy = device can + be added together with + other TPM devices.

backend
@@ -8852,7 +8864,7 @@ qemu-kvm -net nic,model=3D? /dev/null
passthrough

- Use the host's TPM device. + Use the host's TPM or TPM Resource Manager device.

This backend type requires exclusive access to a TPM device = on @@ -8860,6 +8872,11 @@ qemu-kvm -net nic,model=3D? /dev/null qualified file name is specified by path attribute of the source element. If no file name is specified th= en /dev/tpm0 is automatically used. + + Since 6.4.0, when choosing the + spapr-tpm-proxy model, the file name specified = is + expected to be a TPM Resource Manager device, e.g. + /dev/tpmrm0.

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index e3bf7f5d55..b3e466ea13 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -4618,6 +4618,7 @@ tpm-tis tpm-crb tpm-spapr + spapr-tpm-proxy --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812757; cv=none; d=zohomail.com; s=zohoarc; b=HpiFBBLdBEA4VHpMT9zc21BmzVIp+wKkwnc7f3B8xlk+fL3Q6+eUxKy9V7zWZdI2vmxbPBUZ8a6eG4bvk3Bh3PDMtcYRct0HFjBQ8240zmziJhLbN8aIWfHUlVms/QMXY0l7Ay8XyLfm22Bs6XuZQFc/nlSktvqVspnZPlDTAAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812757; h=Content-Type:Content-Transfer-Encoding:Cc: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=5LqEfl++3Sb/Rah8806fKcVpA+ZyvW3Q6SarcZwRVI0=; b=L8f+0aDotQKqZTb9W008CyMRjIWcXY1gmfasesGau91YU9FJZVcC6sMvPi2gXnXxJPwQCpuhUZW/Xgjma8N30RuY+IqWileoc/rXEv7dnMZbrN8fHsEQ68HjoW9a5IbPs1AXpUrk3H+kXYLX83sTY/A6x4hcp5+rDVo5iBoQgQE= 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=fail 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 1591812757040178.86430953052877; Wed, 10 Jun 2020 11:12:37 -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-341-KqGHpyUuPE6zWVT3Y9zEew-1; Wed, 10 Jun 2020 14:12:33 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 19FD3BFC3; Wed, 10 Jun 2020 18:12:28 +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 EDAD88929A; Wed, 10 Jun 2020 18:12:27 +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 BFBF61809554; Wed, 10 Jun 2020 18:12:27 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICDSf020137 for ; Wed, 10 Jun 2020 14:12:13 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7FEFB33246; Wed, 10 Jun 2020 18:12:13 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7B9B033244 for ; Wed, 10 Jun 2020 18:12:10 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9B1EA8316EA for ; Wed, 10 Jun 2020 18:12:10 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-271-8h_BbbKwNwKa1cv9djvAow-1; Wed, 10 Jun 2020 14:12:08 -0400 Received: by mail-qt1-f193.google.com with SMTP id d27so2535634qtg.4; Wed, 10 Jun 2020 11:12:07 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812755; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=5LqEfl++3Sb/Rah8806fKcVpA+ZyvW3Q6SarcZwRVI0=; b=HdSbeuWBQk16qPvGeg4xZPgAR2z05bzglpX+Lh/udWToM7pD8BeriAZ/igMPIOAkumey+g 5XWCfIbF6f+egNbljnKuNYFrPSUfgvO1/9F3aLzFZ3ESfpgFZSp6IxF+rba6IjCmbuLeBU f7XULe5wdB27E3MyM6f5T1INa8SZxzM= X-MC-Unique: KqGHpyUuPE6zWVT3Y9zEew-1 X-MC-Unique: 8h_BbbKwNwKa1cv9djvAow-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5LqEfl++3Sb/Rah8806fKcVpA+ZyvW3Q6SarcZwRVI0=; b=ZZD4cU9WJEWAEUdhOGz6Mh7JQ3+ai+Vlk33C+/t+Vn+A3SsWE8oakWIH6DTcFtkn81 AQHOzPlZnhcvXknVXlWT0pKE5RznC9x3eJr/qvvhPMvkZzJXd6HuzmT9xtXu6FGUpQ+X X4Q3sSxpKGb3gMQXdli5NNf1p2cX1ZZMw8uHKIWYXv5LNiEGMtp6KM+QUmoBTczk6aIP SqWx+YeKN7+HWWZ2/Ql4Zw5qW2XkqE+CO0o8x8xR0a5lo5gtuAwBxkLqV0hWA2N0LpUe 661+i3Jq/kQcNOgnyvnrZXltuCmi7JJZhcNeSM4Ymu74pxvGwd/tlINSTNRpSAKaqerA Jp5w== X-Gm-Message-State: AOAM533BghjIHnwhicj2TAGCg+NCgujs3F3+StT5mB+/32vhvj0PiVpv WomOa6XsdLIowqpZjOMNEVaN+ypZ X-Google-Smtp-Source: ABdhPJxe+irLibPCPADy2XMY1nxX+hpq3xDyavB/FNku7cH8FGNcyNgmvgizy4jj+HOeWAcslhSGvg== X-Received: by 2002:ac8:6bc6:: with SMTP id b6mr4647408qtt.101.1591812726375; Wed, 10 Jun 2020 11:12:06 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 02/10] qemu: Extend QEMU capabilities with 'spapr-tpm-proxy' Date: Wed, 10 Jun 2020 15:11:44 -0300 Message-Id: <20200610181152.374479-3-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Cc: =?UTF-8?q?J=C3=A1n=20Tomko?= , Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Expose the TPM Proxy support for PPC64 guests by creating a new cap called QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY. This device is part of the machinery the guest need to orchestrate with the PPC64 Ultravisor the transition to the Secure VM (SVM) mode. Inside QEMU, this device will be used with the H_TPM_COMM hypercall to connect with the TPM Resource Manager, enabling the guest to open and close TPM sessions with the host TPM. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Reviewed-by: J=C3=A1n Tomko Signed-off-by: Daniel Henrique Barboza --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + 4 files changed, 5 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index aa90eab229..7d52d9725a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -587,6 +587,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "cpu.migratable", "query-cpu-model-expansion.migratable", "fw_cfg", + "spapr-tpm-proxy", ); =20 =20 @@ -1311,6 +1312,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "vhost-user-fs-device", QEMU_CAPS_DEVICE_VHOST_USER_FS }, { "tcg-accel", QEMU_CAPS_TCG }, { "pvscsi", QEMU_CAPS_SCSI_PVSCSI }, + { "spapr-tpm-proxy", QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY }, }; =20 =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 0839c50bc4..f868330511 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -568,6 +568,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_CPU_MIGRATABLE, /* -cpu ...,migratable=3Don|off */ QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_MIGRATABLE, /* query-cpu-model-exp= ansion supports migratable:false */ QEMU_CAPS_FW_CFG, /* -fw_cfg command line option */ + QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY, /* -device spapr-tpm-proxy */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.2.0.ppc64.xml index 4d44cd4ac6..bdf29dcc39 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -186,6 +186,7 @@ + 4001050 0 42900242 diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_5.0.0.ppc64.xml index 409120262e..5c69d1c1dc 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -202,6 +202,7 @@ + 5000000 0 42900241 --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812755; cv=none; d=zohomail.com; s=zohoarc; b=K9wYieooMvOXyZO+jNGnKwv3ULkzmzUn1c8JytNO2IbFcBmSWQDwA4R/wbX+6LAOhtmeVSQ9eYY/QyGzPZ6ynO6+mewIclAsVR0BMVc7lvB7zWzZReqP5Yvjof99aSxtNx+rCenSa4Lqo7B9ePn3nxsx9Sm2vHGoE0Txi7NpeoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812755; h=Content-Type:Content-Transfer-Encoding:Cc: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=kYxL6wlWalU1y5ELnkI9Dp6cP38YI9EnZ+MfX6M2WEQ=; b=fNRGqh28HQROZ9TJFmFVsmIYmRoDb0bV+ynoVno3RYoA8nwpLyPuKlVlwxZt4wTqwV+cwylZtvdInCjGHz7WX9qlBRMIZxFzHnLjpzM9c43672H9TwykDRfb8TMkSXP1M4H/2kE0+jqiDrlV/MxaOsRAWs9ES3k6m07S5aafjSI= 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1591812755151785.5226880599603; Wed, 10 Jun 2020 11:12:35 -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-327-SXE3J28ENPG4pN1zxxui6A-1; Wed, 10 Jun 2020 14:12:31 -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 ADF208018AC; Wed, 10 Jun 2020 18:12:25 +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 8D2355D9E5; Wed, 10 Jun 2020 18:12:25 +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 5DCE2B34AA; Wed, 10 Jun 2020 18:12:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICBBq020120 for ; Wed, 10 Jun 2020 14:12:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id 32A1910073DE; Wed, 10 Jun 2020 18:12:11 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2E10D10F8E1D for ; Wed, 10 Jun 2020 18:12:11 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 155EA8316F5 for ; Wed, 10 Jun 2020 18:12:11 +0000 (UTC) Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-314-9Cex0t-wPsOTimXbFqGbWQ-1; Wed, 10 Jun 2020 14:12:09 -0400 Received: by mail-qk1-f194.google.com with SMTP id f18so3022204qkh.1 for ; Wed, 10 Jun 2020 11:12:08 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812753; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=kYxL6wlWalU1y5ELnkI9Dp6cP38YI9EnZ+MfX6M2WEQ=; b=H5ZtNHYsEzJpelycOGmanbX6V8UZgebShCkSm9dsFaoTds6mSwJVBLeb5yKJL39zeuBVJk i/4faM/AoN34HAjbCWh04p+tmOWYLyvfQQp+V7GyscS1R/IMVKbo/5LojN98MSp9BLwpHg HIgW7q2t0o2wqQGvr642QeT3QfOO2lw= X-MC-Unique: SXE3J28ENPG4pN1zxxui6A-1 X-MC-Unique: 9Cex0t-wPsOTimXbFqGbWQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kYxL6wlWalU1y5ELnkI9Dp6cP38YI9EnZ+MfX6M2WEQ=; b=jFQoI0TFRvhtIgqQLvBKZO8DJcEuQqeUxV04lqNWQlCk0MQffi7t26pzMADN+h0lxo GdPlmqt4pgqJ0L5iwq4V0VUSijo4KkhTeMm/IlbpnjAQqAoJNnKPq8/TfB6bX5rq0uEc mFF5qJ22mzmgT6xb/WKP1zll5PUt2Lbrp0fZKPKZjrGZUXikfkI0yfj/otlucupwHYQj uItkljY9Ipr96HQIfBQ4Mv/pgaJ0QSHpf+Gw5HUeYSh9vVxRmKMTTALszx1XKi6mmXcZ DUfo0uUMbsDGOJh13Yk0kWcH4gZJMLPIivVuEXxUopkWouUNIWBuoUwkVcN8R0qg4ay6 a1Jg== X-Gm-Message-State: AOAM531uQny2XNS0JnU21RuSCw8Ppc7ey0u5bR0n+IsHB2mK/xbRXImG 96fbqd8OeP6IP/C59EmnQWFG2Nc2 X-Google-Smtp-Source: ABdhPJwalo99Jtj/EUbPVkWPXalTjXrz/Y0FKI/E1kdo+31W1lq2NsM1j1Ted6sgNXGH2wYbVTyO5A== X-Received: by 2002:a05:620a:201b:: with SMTP id c27mr3980301qka.363.1591812728304; Wed, 10 Jun 2020 11:12:08 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 03/10] qemu_extdevice.c: remove unneeded 'ret' variable Date: Wed, 10 Jun 2020 15:11:45 -0300 Message-Id: <20200610181152.374479-4-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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" qemuExtDevicesInitPaths() does not need 'ret'. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_extdevice.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c index dc188e6042..8f1bd9311e 100644 --- a/src/qemu/qemu_extdevice.c +++ b/src/qemu/qemu_extdevice.c @@ -73,12 +73,10 @@ static int qemuExtDevicesInitPaths(virQEMUDriverPtr driver, virDomainDefPtr def) { - int ret =3D 0; - if (def->tpm) - ret =3D qemuExtTPMInitPaths(driver, def); + return qemuExtTPMInitPaths(driver, def); =20 - return ret; + return 0; } =20 =20 --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812759; cv=none; d=zohomail.com; s=zohoarc; b=erogFq1Ar8Wrf8HPRqzNSuqWl2D0hBXPtcvT4Cd90SYHJjFEOuVdSfiseVYIgp4CM5kPTsEafRA7RQ4EwmVY6WaFKOgOTawputfS4W5s0NQEQ3raQTlQSZuRd35Nnsws8Z1Gd4hQW1XC7w9E+lzQYDV4o34yayr8MnCVls9ZrG0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812759; h=Content-Type:Content-Transfer-Encoding:Cc: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=arI06+HbF0nIn1Pq4WD5Qs5ScvAwkJv2Nmwq5zQghD0=; b=HbvzgvV53A/fzQIESSFnWc2iF0uM6CMj+ZBXU+Nb4R8Gtmibz0tVvbqCT4VxDMlMTXvsZPFtd8HQL3q8BUNF5H5viu4y149Oi9cvfbGvpWip/fyJiFWALz/Vh7nY/iKWrqwd7inHKb7dH7rE/DCS/iAlCXM1czbJdGk+u0TcLFU= 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=fail 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 159181275944590.43163242252729; Wed, 10 Jun 2020 11:12:39 -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-506-QNRMz5HtNPi2ul2HRk-Thg-1; Wed, 10 Jun 2020 14:12:35 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4BBBA835B46; Wed, 10 Jun 2020 18:12:30 +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 2DBD27C377; Wed, 10 Jun 2020 18:12:30 +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 F2888180043A; Wed, 10 Jun 2020 18:12:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICEbC020143 for ; Wed, 10 Jun 2020 14:12:14 -0400 Received: by smtp.corp.redhat.com (Postfix) id E134810F8E20; Wed, 10 Jun 2020 18:12:13 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DC98410F8E1E for ; Wed, 10 Jun 2020 18:12:13 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C3173804026 for ; Wed, 10 Jun 2020 18:12:13 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-220-iPuSdGVFNUagbG0mDYUDBg-1; Wed, 10 Jun 2020 14:12:11 -0400 Received: by mail-qk1-f195.google.com with SMTP id c14so2947124qka.11 for ; Wed, 10 Jun 2020 11:12:11 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812757; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=arI06+HbF0nIn1Pq4WD5Qs5ScvAwkJv2Nmwq5zQghD0=; b=dk7YKVYpRnJmRzxRsFReN+Nhgbm5H02P/GTlTO0+xUtkSEaUMJt9D8p4Qg/Jneryyu/xEa zpQ/DnzwZeOW36sId7l0DOc3MMtDEKMhsoYaDHI5caNnhjgxBbhfo1dQl7DG2MoMLusXRQ H1HBeOdVooPC2+wNTN4ncz4bEkXhNHo= X-MC-Unique: QNRMz5HtNPi2ul2HRk-Thg-1 X-MC-Unique: iPuSdGVFNUagbG0mDYUDBg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=arI06+HbF0nIn1Pq4WD5Qs5ScvAwkJv2Nmwq5zQghD0=; b=Fo1/IgoID75BIqamxDX8gey1Hvz7+A5FIgYfeAziu7ropl5g6N4OasWIVXtZSqok9l c6tmH+5JdHGcDk3SODZsX7+zVpF+8HpYI98bgK8nhrpZlwekxEddosnHValfTFyp2Z/U 3nDv/NRfqQkq2x5cT1saAQMoQfBBfw2/us0nWlX7A3zORVzSdciiV7G9y+R3f+/Ns/01 MEmfQRFlMJmYVfn/1AyRErBS2Un6OS2EEMOGZJrZrhvN1QHXskOwpLX4illdPkEByGc1 iIPDpwMWJtaphstC0Qzcoo2otE0osib2cdqOwTe7WwBJ2j9hfHFH6LYVA8FXLS/rZfwB lV9A== X-Gm-Message-State: AOAM532ehf8ETSPxAfluAJIhkZCkTP8i2c+qkxeKKwasCf1qLwmd3Dq3 FspJSLX45UQh4fy7YtMqGZVa3z9g X-Google-Smtp-Source: ABdhPJxlLTTlQcp0AI0YeOfa9wnc2nPLoxMjSO9B+J657QURe4GwCSqlV15imEoPMtNaeq9Kh9L1aA== X-Received: by 2002:a37:4852:: with SMTP id v79mr4251772qka.132.1591812730698; Wed, 10 Jun 2020 11:12:10 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 04/10] qemu_tpm, security, tests: change 'switch' clauses for 'if' Date: Wed, 10 Jun 2020 15:11:46 -0300 Message-Id: <20200610181152.374479-5-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.15 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 trivial rework is aimed to reduce the amount of line changes made by the next patch, when 'def->tpm' will become a 'def->tpms' array. Instead of using a 'switch' where only the VIR_DOMAIN_TPM_TYPE_EMULATOR label does something, use an 'if' clause instead. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_tpm.c | 44 +++++---------------------------- src/security/security_selinux.c | 16 ++---------- src/security/virt-aa-helper.c | 7 +----- tests/qemuxml2argvtest.c | 7 +----- 4 files changed, 10 insertions(+), 64 deletions(-) diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index fe567f440c..afec0e5328 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -680,14 +680,9 @@ qemuExtTPMInitPaths(virQEMUDriverPtr driver, { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); =20 - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) return qemuTPMEmulatorInitPaths(def->tpm, cfg->swtpmStorageDir, def->uuid); - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; - } =20 return 0; } @@ -700,8 +695,7 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver, g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *shortName =3D NULL; =20 - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(def); if (!shortName) return -1; @@ -711,9 +705,6 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver, cfg->swtpm_group, cfg->swtpmStateDir, cfg->user, shortName); - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } =20 return 0; @@ -723,15 +714,8 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver, void qemuExtTPMCleanupHost(virDomainDefPtr def) { - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) qemuTPMDeleteEmulatorStorage(def->tpm); - break; - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - /* nothing to do */ - break; - } } =20 =20 @@ -825,15 +809,9 @@ qemuExtTPMStart(virQEMUDriverPtr driver, { virDomainTPMDefPtr tpm =3D vm->def->tpm; =20 - switch (tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) return qemuExtTPMStartEmulator(driver, vm, incomingMigration); =20 - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; - } - return 0; } =20 @@ -845,18 +823,13 @@ qemuExtTPMStop(virQEMUDriverPtr driver, g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *shortName =3D NULL; =20 - switch (vm->def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (vm->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(vm->def); if (!shortName) return; =20 qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName); qemuSecurityCleanupTPMEmulator(driver, vm); - break; - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } =20 return; @@ -873,8 +846,7 @@ qemuExtTPMSetupCgroup(virQEMUDriverPtr driver, int rc; pid_t pid; =20 - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(def); if (!shortName) return -1; @@ -886,10 +858,6 @@ qemuExtTPMSetupCgroup(virQEMUDriverPtr driver, } if (virCgroupAddProcess(cgroup, pid) < 0) return -1; - break; - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } =20 return 0; diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index e6819af26c..554bdd4f80 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -3549,10 +3549,7 @@ virSecuritySELinuxSetTPMLabels(virSecurityManagerPtr= mgr, if (seclabel =3D=3D NULL) return 0; =20 - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - break; - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { ret =3D virSecuritySELinuxSetFileLabels( mgr, def->tpm->data.emulator.storagepath, seclabel); @@ -3560,9 +3557,6 @@ virSecuritySELinuxSetTPMLabels(virSecurityManagerPtr = mgr, ret =3D virSecuritySELinuxSetFileLabels( mgr, def->tpm->data.emulator.logfile, seclabel); - break; - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } =20 return ret; @@ -3575,18 +3569,12 @@ virSecuritySELinuxRestoreTPMLabels(virSecurityManag= erPtr mgr, { int ret =3D 0; =20 - switch (def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - break; - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { ret =3D virSecuritySELinuxRestoreFileLabels( mgr, def->tpm->data.emulator.storagepath); if (ret =3D=3D 0 && def->tpm->data.emulator.logfile) ret =3D virSecuritySELinuxRestoreFileLabels( mgr, def->tpm->data.emulator.logfile); - break; - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } =20 return ret; diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 34c281100e..7e8f0a84be 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -1222,8 +1222,7 @@ get_files(vahControl * ctl) char *shortName =3D NULL; const char *tpmpath =3D NULL; =20 - switch (ctl->def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (ctl->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(ctl->def); =20 switch (ctl->def->tpm->version) { @@ -1256,10 +1255,6 @@ get_files(vahControl * ctl) RUNSTATEDIR, shortName); =20 VIR_FREE(shortName); - break; - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } } =20 diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 02f8846e57..f57d2a21b3 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -438,15 +438,10 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, } =20 if (vm->def->tpm) { - switch (vm->def->tpm->type) { - case VIR_DOMAIN_TPM_TYPE_EMULATOR: + if (vm->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { VIR_FREE(vm->def->tpm->data.emulator.source.data.file.path); vm->def->tpm->data.emulator.source.data.file.path =3D g_strdup= ("/dev/test"); vm->def->tpm->data.emulator.source.type =3D VIR_DOMAIN_CHR_TYP= E_FILE; - break; - case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: - case VIR_DOMAIN_TPM_TYPE_LAST: - break; } } =20 --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812763; cv=none; d=zohomail.com; s=zohoarc; b=R3qpoP3eQfZWBDZVIFXjeQAYNauD1PYQIQcCgm2vM5Ws06ebDLAJ8whOavGEe3BNBQctRJzoCxrKZkNOwCEKXExZ4RgYP944Dj+uJlEsvKZF/38M1nZEMpqYsilkgZr9zfDn1pZQTv3G+qOf2rHhM8NLarBkhL8g/TE9/mrhirQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812763; h=Content-Type:Content-Transfer-Encoding:Cc: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=LQksFTHpUt5w5egPd9j7ATkmOL/2xM0KZFVNmn3KJ/A=; b=KGVqIRFrjdnys7qY4arVbOxJuheOgClDfmVzTzSgSCwBD0qi60P7oLRXN+IFQ8cd71pLl8GhUf/WRiRcPY8tynBSMXOSQhAb+gL7Y8Vl97c3mBQNwnTBiCwUjBsEPLA0iknedH6k5mANaHKkz+Iqi9BdNI5Tnp4jWM9D3AaO7eE= 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=fail 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 1591812763949382.8585871898383; Wed, 10 Jun 2020 11:12:43 -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-33-oIx01NZjOt2aB93W-mGJ0g-1; Wed, 10 Jun 2020 14:12:40 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D4943107ACF5; Wed, 10 Jun 2020 18:12:34 +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 B30A98FF69; Wed, 10 Jun 2020 18:12:34 +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 85DB4B34B9; Wed, 10 Jun 2020 18:12:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICM18020174 for ; Wed, 10 Jun 2020 14:12:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id CDD762026FFE; Wed, 10 Jun 2020 18:12:22 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C8FEC2026D5D for ; Wed, 10 Jun 2020 18:12:16 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A2483101A526 for ; Wed, 10 Jun 2020 18:12:16 +0000 (UTC) Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-398-twrsKtpYN-uCTJeFmpDQCg-1; Wed, 10 Jun 2020 14:12:14 -0400 Received: by mail-qt1-f195.google.com with SMTP id g18so2491040qtu.13 for ; Wed, 10 Jun 2020 11:12:14 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812762; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=LQksFTHpUt5w5egPd9j7ATkmOL/2xM0KZFVNmn3KJ/A=; b=iQoybn32Z3X/Kpd/xoyCVZ7ks4Of5+OwDLy4IZmIit+EHgg5YBBUlwTeiQALfSOWGaPtsN X4gpwTX5lLNecGdPx4G4ufOEGX51IuiA4093AxpjHrmjFCXGSTV0YBfM8gkVA7gSnth+1Q T32/wTwGBVbxCvpxaxqDSHHP1pi/Vdg= X-MC-Unique: oIx01NZjOt2aB93W-mGJ0g-1 X-MC-Unique: twrsKtpYN-uCTJeFmpDQCg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LQksFTHpUt5w5egPd9j7ATkmOL/2xM0KZFVNmn3KJ/A=; b=cIXB5fufpraV6tMqbH2Zjz3ubHpk24iMMAq7HGNjtyFgTQwJdbJpBJY6rqzY4UyTYk e112Y6MZ+AxWdohDsQE4vSBedKyuuvTly0mj5qCAkVe2zCQxyAkuf1aOdySeJ9lLEgCm 8qULd28N59+OISSaxHePVWyu0VW5gw95NlUnm5wl9ddMLRhZUGD8np4qNnBnPMW50aMP 3aAeu+YLPvYGYpxNLylhM5sLjg+s0De7jkbYHX4XgC2vZVMoE/Vx7DT11iAqQVmpa/ah LavnKuYuqE1DF+sj6YXkEDeZiq6rKR2mASh4ogZ0ohKCI9RtyTl9ZN/n46UieAeHrIo+ VzqQ== X-Gm-Message-State: AOAM532swwbus/c6c96QeUJtAdkNXzwZt9DAuk59+wylmPqRqoZ/w8GJ 6Vbh9fQ6GhYMbwfWb8Zd218J9Tzf X-Google-Smtp-Source: ABdhPJyF3N6g1RSd/DwgioGBUaItN0x+KxlKT3Qj8huWhcYJWyubgYSqJxGhGMH2KyWaqtGoTwy/UA== X-Received: by 2002:ac8:ece:: with SMTP id w14mr2748227qti.298.1591812732913; Wed, 10 Jun 2020 11:12:12 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 05/10] conf, qemu, security, tests: introducing 'def->tpms' array Date: Wed, 10 Jun 2020 15:11:47 -0300 Message-Id: <20200610181152.374479-6-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.13 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" A TPM Proxy device can coexist with a regular TPM, but the current domain definition supports only a single TPM device in the 'tpm' pointer. This patch replaces this existing pointer in the domain definition to an array of TPM devices. All files that references the old pointer were adapted to handle the new array instead. virDomainDefParseXML() TPM related code was adapted to handle the parsing of an extra TPM device. TPM validations after this new scenario will be updated in the next patch. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_audit.c | 4 +-- src/conf/domain_conf.c | 50 +++++++++++++++++++------------ src/conf/domain_conf.h | 6 +++- src/qemu/qemu_alias.c | 4 +-- src/qemu/qemu_cgroup.c | 10 ++++--- src/qemu/qemu_command.c | 34 ++++++++++++++------- src/qemu/qemu_domain.c | 31 +++++++++++++------- src/qemu/qemu_domain_address.c | 11 ++++--- src/qemu/qemu_extdevice.c | 18 +++++++----- src/qemu/qemu_tpm.c | 52 +++++++++++++++++++++++++-------- src/security/security_dac.c | 8 ++--- src/security/security_selinux.c | 32 ++++++++++++-------- src/security/virt-aa-helper.c | 9 ++++-- tests/qemuxml2argvtest.c | 13 +++++---- 14 files changed, 186 insertions(+), 96 deletions(-) diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c index 1b0abb21a0..8bc6633af4 100644 --- a/src/conf/domain_audit.c +++ b/src/conf/domain_audit.c @@ -821,8 +821,8 @@ virDomainAuditStart(virDomainObjPtr vm, const char *rea= son, bool success) for (i =3D 0; i < vm->def->nrngs; i++) virDomainAuditRNG(vm, NULL, vm->def->rngs[i], "start", true); =20 - if (vm->def->tpm) - virDomainAuditTPM(vm, vm->def->tpm, "start", true); + for (i =3D 0; i < vm->def->ntpms; i++) + virDomainAuditTPM(vm, vm->def->tpms[i], "start", true); =20 for (i =3D 0; i < vm->def->nshmems; i++) virDomainAuditShmem(vm, vm->def->shmems[i], "start", true); diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index e9336fd72d..aaf10dd18a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1165,6 +1165,7 @@ VIR_ENUM_IMPL(virDomainTPMModel, "tpm-tis", "tpm-crb", "tpm-spapr", + "spapr-tpm-proxy", ); =20 VIR_ENUM_IMPL(virDomainTPMBackend, @@ -3480,7 +3481,9 @@ void virDomainDefFree(virDomainDefPtr def) virDomainMemoryDefFree(def->mems[i]); VIR_FREE(def->mems); =20 - virDomainTPMDefFree(def->tpm); + for (i =3D 0; i < def->ntpms; i++) + virDomainTPMDefFree(def->tpms[i]); + VIR_FREE(def->tpms); =20 for (i =3D 0; i < def->npanics; i++) virDomainPanicDefFree(def->panics[i]); @@ -4315,10 +4318,10 @@ virDomainDeviceInfoIterateInternal(virDomainDefPtr = def, if ((rc =3D cb(def, &device, &def->shmems[i]->info, opaque)) !=3D = 0) return rc; } - if (def->tpm) { - device.type =3D VIR_DOMAIN_DEVICE_TPM; - device.data.tpm =3D def->tpm; - if ((rc =3D cb(def, &device, &def->tpm->info, opaque)) !=3D 0) + device.type =3D VIR_DOMAIN_DEVICE_TPM; + for (i =3D 0; i < def->ntpms; i++) { + device.data.tpm =3D def->tpms[i]; + if ((rc =3D cb(def, &device, &def->tpms[i]->info, opaque)) !=3D 0) return rc; } device.type =3D VIR_DOMAIN_DEVICE_PANIC; @@ -22060,15 +22063,23 @@ virDomainDefParseXML(xmlDocPtr xml, if ((n =3D virXPathNodeSet("./devices/tpm", ctxt, &nodes)) < 0) goto error; =20 - if (n > 1) { + if (n > 2) { virReportError(VIR_ERR_XML_ERROR, "%s", - _("only a single TPM device is supported")); + _("a maximum of two TPM devices is supported, one o= f " + "them being a TPM Proxy device")); goto error; } =20 - if (n > 0) { - if (!(def->tpm =3D virDomainTPMDefParseXML(xmlopt, nodes[0], ctxt,= flags))) + if (n && VIR_ALLOC_N(def->tpms, n) < 0) + goto error; + + for (i =3D 0; i < n; i++) { + virDomainTPMDefPtr tpm =3D virDomainTPMDefParseXML(xmlopt, nodes[i= ], + ctxt, flags); + if (!tpm) goto error; + + def->tpms[def->ntpms++] =3D tpm; } VIR_FREE(nodes); =20 @@ -24444,16 +24455,19 @@ virDomainDefCheckABIStabilityFlags(virDomainDefPt= r src, goto error; } =20 - if (src->tpm && dst->tpm) { - if (!virDomainTPMDefCheckABIStability(src->tpm, dst->tpm)) - goto error; - } else if (src->tpm || dst->tpm) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Either both target and source domains or none of= " - "them must have TPM device present")); + if (src->ntpms !=3D dst->ntpms) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain TPM device count %zu " + "does not match source %zu"), + dst->ntpms, src->ntpms); goto error; } =20 + for (i =3D 0; i < src->ntpms; i++) { + if (!virDomainTPMDefCheckABIStability(src->tpms[i], dst->tpms[i])) + goto error; + } + if (src->nmems !=3D dst->nmems) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Target domain memory device count %zu " @@ -29896,8 +29910,8 @@ virDomainDefFormatInternalSetRootName(virDomainDefP= tr def, goto error; } =20 - if (def->tpm) { - if (virDomainTPMDefFormat(buf, def->tpm, flags) < 0) + for (n =3D 0; n < def->ntpms; n++) { + if (virDomainTPMDefFormat(buf, def->tpms[n], flags) < 0) goto error; } =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index bda8fb6bce..3c28a2e75b 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1294,6 +1294,7 @@ typedef enum { VIR_DOMAIN_TPM_MODEL_TIS, VIR_DOMAIN_TPM_MODEL_CRB, VIR_DOMAIN_TPM_MODEL_SPAPR, + VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY, =20 VIR_DOMAIN_TPM_MODEL_LAST } virDomainTPMModel; @@ -2627,11 +2628,14 @@ struct _virDomainDef { size_t nsysinfo; virSysinfoDefPtr *sysinfo; =20 + /* At maximum 2 TPMs on the domain if a TPM Proxy is present. */ + size_t ntpms; + virDomainTPMDefPtr *tpms; + /* Only 1 */ virDomainWatchdogDefPtr watchdog; virDomainMemballoonDefPtr memballoon; virDomainNVRAMDefPtr nvram; - virDomainTPMDefPtr tpm; virCPUDefPtr cpu; virDomainRedirFilterDefPtr redirfilter; virDomainIOMMUDefPtr iommu; diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index d6527cb046..85fdb85940 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -669,8 +669,8 @@ qemuAssignDeviceAliases(virDomainDefPtr def, virQEMUCap= sPtr qemuCaps) if (qemuAssignDeviceRNGAlias(def, def->rngs[i]) < 0) return -1; } - if (def->tpm) { - if (qemuAssignDeviceTPMAlias(def->tpm, 0) < 0) + for (i =3D 0; i < def->ntpms; i++) { + if (qemuAssignDeviceTPMAlias(def->tpms[i], 0) < 0) return -1; } for (i =3D 0; i < def->nmems; i++) { diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index d92202f847..eb0f03d4aa 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -332,10 +332,10 @@ qemuSetupChardevCgroupCB(virDomainDefPtr def G_GNUC_U= NUSED, =20 =20 static int -qemuSetupTPMCgroup(virDomainObjPtr vm) +qemuSetupTPMCgroup(virDomainObjPtr vm, + virDomainTPMDefPtr dev) { int ret =3D 0; - virDomainTPMDefPtr dev =3D vm->def->tpm; =20 switch (dev->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: @@ -805,8 +805,10 @@ qemuSetupDevicesCgroup(virDomainObjPtr vm) vm) < 0) return -1; =20 - if (vm->def->tpm && qemuSetupTPMCgroup(vm) < 0) - return -1; + for (i =3D 0; i < vm->def->ntpms; i++) { + if (qemuSetupTPMCgroup(vm, vm->def->tpms[i]) < 0) + return -1; + } =20 for (i =3D 0; i < vm->def->nhostdevs; i++) { /* This may allow /dev/vfio/vfio multiple times, but that diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f27246b4c6..7ccf71e9ea 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8952,10 +8952,10 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd, =20 static char * qemuBuildTPMDevStr(const virDomainDef *def, + virDomainTPMDefPtr tpm, virQEMUCapsPtr qemuCaps) { g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - virDomainTPMDef *tpm =3D def->tpm; const char *model =3D virDomainTPMModelTypeToString(tpm->model); =20 virBufferAsprintf(&buf, "%s,tpmdev=3Dtpm-%s,id=3D%s", @@ -8994,13 +8994,12 @@ qemuBuildTPMOpenBackendFDs(const char *tpmdev, =20 =20 static char * -qemuBuildTPMBackendStr(const virDomainDef *def, - virCommandPtr cmd, +qemuBuildTPMBackendStr(virCommandPtr cmd, + virDomainTPMDefPtr tpm, int *tpmfd, int *cancelfd, char **chardev) { - const virDomainTPMDef *tpm =3D def->tpm; g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; g_autofree char *cancel_path =3D NULL; g_autofree char *devset =3D NULL; @@ -9054,6 +9053,7 @@ qemuBuildTPMBackendStr(const virDomainDef *def, static int qemuBuildTPMCommandLine(virCommandPtr cmd, const virDomainDef *def, + virDomainTPMDefPtr tpm, virQEMUCapsPtr qemuCaps) { char *optstr; @@ -9062,10 +9062,7 @@ qemuBuildTPMCommandLine(virCommandPtr cmd, int cancelfd =3D -1; char *fdset; =20 - if (!def->tpm) - return 0; - - if (!(optstr =3D qemuBuildTPMBackendStr(def, cmd, + if (!(optstr =3D qemuBuildTPMBackendStr(cmd, tpm, &tpmfd, &cancelfd, &chardev))) return -1; @@ -9094,7 +9091,7 @@ qemuBuildTPMCommandLine(virCommandPtr cmd, VIR_FREE(fdset); } =20 - if (!(optstr =3D qemuBuildTPMDevStr(def, qemuCaps))) + if (!(optstr =3D qemuBuildTPMDevStr(def, tpm, qemuCaps))) return -1; =20 virCommandAddArgList(cmd, "-device", optstr, NULL); @@ -9103,6 +9100,23 @@ qemuBuildTPMCommandLine(virCommandPtr cmd, return 0; } =20 + +static int +qemuBuildTPMsCommandLine(virCommandPtr cmd, + const virDomainDef *def, + virQEMUCapsPtr qemuCaps) +{ + size_t i; + + for (i =3D 0; i < def->ntpms; i++) { + if (qemuBuildTPMCommandLine(cmd, def, def->tpms[i], qemuCaps) < 0) + return -1; + } + + return 0; +} + + static int qemuBuildSEVCommandLine(virDomainObjPtr vm, virCommandPtr cmd, virDomainSEVDefPtr sev) @@ -9785,7 +9799,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, chardevStdioLogd) < 0) return NULL; =20 - if (qemuBuildTPMCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildTPMsCommandLine(cmd, def, qemuCaps) < 0) return NULL; =20 if (qemuBuildInputCommandLine(cmd, def, qemuCaps) < 0) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2dad823a86..5de308d285 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11597,16 +11597,9 @@ qemuDomainSetupAllChardevs(virQEMUDriverConfigPtr = cfg G_GNUC_UNUSED, =20 static int qemuDomainSetupTPM(virQEMUDriverConfigPtr cfg G_GNUC_UNUSED, - virDomainObjPtr vm, + virDomainTPMDefPtr dev, const struct qemuDomainCreateDeviceData *data) { - virDomainTPMDefPtr dev =3D vm->def->tpm; - - if (!dev) - return 0; - - VIR_DEBUG("Setting up TPM"); - switch (dev->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: if (qemuDomainCreateDevice(dev->data.passthrough.source.data.file.= path, @@ -11620,7 +11613,25 @@ qemuDomainSetupTPM(virQEMUDriverConfigPtr cfg G_GN= UC_UNUSED, break; } =20 - VIR_DEBUG("Setup TPM"); + return 0; +} + + +static int +qemuDomainSetupAllTPMs(virQEMUDriverConfigPtr cfg G_GNUC_UNUSED, + virDomainObjPtr vm, + const struct qemuDomainCreateDeviceData *data) +{ + size_t i; + + VIR_DEBUG("Setting up TPMs"); + + for (i =3D 0; i < vm->def->ntpms; i++) { + if (qemuDomainSetupTPM(cfg, vm->def->tpms[i], data) < 0) + return -1; + } + + VIR_DEBUG("Setup all TPMs"); return 0; } =20 @@ -11846,7 +11857,7 @@ qemuDomainBuildNamespace(virQEMUDriverConfigPtr cfg, if (qemuDomainSetupAllChardevs(cfg, vm, &data) < 0) goto cleanup; =20 - if (qemuDomainSetupTPM(cfg, vm, &data) < 0) + if (qemuDomainSetupAllTPMs(cfg, vm, &data) < 0) goto cleanup; =20 if (qemuDomainSetupAllGraphics(cfg, vm, &data) < 0) diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 07431343ed..4c26070022 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -268,10 +268,13 @@ qemuDomainAssignSpaprVIOAddresses(virDomainDefPtr def) return -1; } =20 - if (def->tpm) { - if (qemuDomainIsPSeries(def)) - def->tpm->info.type =3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVI= O; - if (qemuDomainAssignSpaprVIOAddress(def, &def->tpm->info, + for (i =3D 0; i < def->ntpms; i++) { + virDomainTPMDefPtr tpm =3D def->tpms[i]; + + if (tpm->model !=3D VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY && + qemuDomainIsPSeries(def)) + tpm->info.type =3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO; + if (qemuDomainAssignSpaprVIOAddress(def, &tpm->info, VIO_ADDR_TPM) < 0) return -1; } diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c index 8f1bd9311e..2fb71dd334 100644 --- a/src/qemu/qemu_extdevice.c +++ b/src/qemu/qemu_extdevice.c @@ -73,7 +73,7 @@ static int qemuExtDevicesInitPaths(virQEMUDriverPtr driver, virDomainDefPtr def) { - if (def->tpm) + if (def->ntpms > 0) return qemuExtTPMInitPaths(driver, def); =20 return 0; @@ -132,7 +132,7 @@ qemuExtDevicesPrepareHost(virQEMUDriverPtr driver, virDomainDefPtr def =3D vm->def; size_t i; =20 - if (def->tpm && + if (def->ntpms > 0 && qemuExtTPMPrepareHost(driver, def) < 0) return -1; =20 @@ -155,7 +155,7 @@ qemuExtDevicesCleanupHost(virQEMUDriverPtr driver, if (qemuExtDevicesInitPaths(driver, def) < 0) return; =20 - if (def->tpm) + if (def->ntpms > 0) qemuExtTPMCleanupHost(def); } =20 @@ -181,7 +181,7 @@ qemuExtDevicesStart(virQEMUDriverPtr driver, } } =20 - if (def->tpm && qemuExtTPMStart(driver, vm, incomingMigration) < 0) + if (def->ntpms > 0 && qemuExtTPMStart(driver, vm, incomingMigration) <= 0) return -1; =20 for (i =3D 0; i < def->nnets; i++) { @@ -223,7 +223,7 @@ qemuExtDevicesStop(virQEMUDriverPtr driver, qemuExtVhostUserGPUStop(driver, vm, video); } =20 - if (def->tpm) + if (def->ntpms > 0) qemuExtTPMStop(driver, vm); =20 for (i =3D 0; i < def->nnets; i++) { @@ -256,8 +256,10 @@ qemuExtDevicesHasDevice(virDomainDefPtr def) return true; } =20 - if (def->tpm && def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - return true; + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + return true; + } =20 for (i =3D 0; i < def->nfss; i++) { virDomainFSDefPtr fs =3D def->fss[i]; @@ -297,7 +299,7 @@ qemuExtDevicesSetupCgroup(virQEMUDriverPtr driver, return -1; } =20 - if (def->tpm && + if (def->ntpms > 0 && qemuExtTPMSetupCgroup(driver, def, cgroup) < 0) return -1; =20 diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index afec0e5328..8adb0e42b8 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -679,10 +679,15 @@ qemuExtTPMInitPaths(virQEMUDriverPtr driver, virDomainDefPtr def) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + size_t i; =20 - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - return qemuTPMEmulatorInitPaths(def->tpm, cfg->swtpmStorageDir, + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; + + return qemuTPMEmulatorInitPaths(def->tpms[i], cfg->swtpmStorageDir, def->uuid); + } =20 return 0; } @@ -694,13 +699,17 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver, { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *shortName =3D NULL; + size_t i; + + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; =20 - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(def); if (!shortName) return -1; =20 - return qemuTPMEmulatorPrepareHost(def->tpm, cfg->swtpmLogDir, + return qemuTPMEmulatorPrepareHost(def->tpms[i], cfg->swtpmLogDir, def->name, cfg->swtpm_user, cfg->swtpm_group, cfg->swtpmStateDir, cfg->user, @@ -714,8 +723,14 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver, void qemuExtTPMCleanupHost(virDomainDefPtr def) { - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - qemuTPMDeleteEmulatorStorage(def->tpm); + size_t i; + + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; + + qemuTPMDeleteEmulatorStorage(def->tpms[i]); + } } =20 =20 @@ -733,13 +748,13 @@ qemuExtTPMCleanupHost(virDomainDefPtr def) static int qemuExtTPMStartEmulator(virQEMUDriverPtr driver, virDomainObjPtr vm, + virDomainTPMDefPtr tpm, bool incomingMigration) { g_autoptr(virCommand) cmd =3D NULL; int exitstatus =3D 0; g_autofree char *errbuf =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D NULL; - virDomainTPMDefPtr tpm =3D vm->def->tpm; g_autofree char *shortName =3D virDomainDefGetShortName(vm->def); int cmdret =3D 0, timeout, rc; pid_t pid; @@ -807,10 +822,15 @@ qemuExtTPMStart(virQEMUDriverPtr driver, virDomainObjPtr vm, bool incomingMigration) { - virDomainTPMDefPtr tpm =3D vm->def->tpm; + size_t i; + + for (i =3D 0; i < vm->def->ntpms; i++) { + if (vm->def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; =20 - if (tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) - return qemuExtTPMStartEmulator(driver, vm, incomingMigration); + return qemuExtTPMStartEmulator(driver, vm, vm->def->tpms[i], + incomingMigration); + } =20 return 0; } @@ -822,8 +842,12 @@ qemuExtTPMStop(virQEMUDriverPtr driver, { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *shortName =3D NULL; + size_t i; + + for (i =3D 0; i < vm->def->ntpms; i++) { + if (vm->def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; =20 - if (vm->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(vm->def); if (!shortName) return; @@ -845,8 +869,12 @@ qemuExtTPMSetupCgroup(virQEMUDriverPtr driver, g_autofree char *shortName =3D NULL; int rc; pid_t pid; + size_t i; + + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; =20 - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { shortName =3D virDomainDefGetShortName(def); if (!shortName) return -1; diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 7e65b78fbe..54d2695a3c 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1997,10 +1997,10 @@ virSecurityDACRestoreAllLabel(virSecurityManagerPtr= mgr, &chardevData) < 0) rc =3D -1; =20 - if (def->tpm) { + for (i =3D 0; i < def->ntpms; i++) { if (virSecurityDACRestoreTPMFileLabel(mgr, def, - def->tpm) < 0) + def->tpms[i]) < 0) rc =3D -1; } =20 @@ -2203,10 +2203,10 @@ virSecurityDACSetAllLabel(virSecurityManagerPtr mgr, &chardevData) < 0) return -1; =20 - if (def->tpm) { + for (i =3D 0; i < def->ntpms; i++) { if (virSecurityDACSetTPMFileLabel(mgr, def, - def->tpm) < 0) + def->tpms[i]) < 0) return -1; } =20 diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index 554bdd4f80..1d0d697326 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2782,8 +2782,8 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManagerP= tr mgr, return -1; } =20 - if (def->tpm) { - if (virSecuritySELinuxRestoreTPMFileLabelInt(mgr, def, def->tpm) <= 0) + for (i =3D 0; i < def->ntpms; i++) { + if (virSecuritySELinuxRestoreTPMFileLabelInt(mgr, def, def->tpms[i= ]) < 0) rc =3D -1; } =20 @@ -3215,8 +3215,8 @@ virSecuritySELinuxSetAllLabel(virSecurityManagerPtr m= gr, return -1; } =20 - if (def->tpm) { - if (virSecuritySELinuxSetTPMFileLabel(mgr, def, def->tpm) < 0) + for (i =3D 0; i < def->ntpms; i++) { + if (virSecuritySELinuxSetTPMFileLabel(mgr, def, def->tpms[i]) < 0) return -1; } =20 @@ -3543,19 +3543,23 @@ virSecuritySELinuxSetTPMLabels(virSecurityManagerPt= r mgr, virDomainDefPtr def) { int ret =3D 0; + size_t i; virSecurityLabelDefPtr seclabel; =20 seclabel =3D virDomainDefGetSecurityLabelDef(def, SECURITY_SELINUX_NAM= E); if (seclabel =3D=3D NULL) return 0; =20 - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; + ret =3D virSecuritySELinuxSetFileLabels( - mgr, def->tpm->data.emulator.storagepath, + mgr, def->tpms[i]->data.emulator.storagepath, seclabel); - if (ret =3D=3D 0 && def->tpm->data.emulator.logfile) + if (ret =3D=3D 0 && def->tpms[i]->data.emulator.logfile) ret =3D virSecuritySELinuxSetFileLabels( - mgr, def->tpm->data.emulator.logfile, + mgr, def->tpms[i]->data.emulator.logfile, seclabel); } =20 @@ -3568,13 +3572,17 @@ virSecuritySELinuxRestoreTPMLabels(virSecurityManag= erPtr mgr, virDomainDefPtr def) { int ret =3D 0; + size_t i; + + for (i =3D 0; i < def->ntpms; i++) { + if (def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; =20 - if (def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { ret =3D virSecuritySELinuxRestoreFileLabels( - mgr, def->tpm->data.emulator.storagepath); - if (ret =3D=3D 0 && def->tpm->data.emulator.logfile) + mgr, def->tpms[i]->data.emulator.storagepath); + if (ret =3D=3D 0 && def->tpms[i]->data.emulator.logfile) ret =3D virSecuritySELinuxRestoreFileLabels( - mgr, def->tpm->data.emulator.logfile); + mgr, def->tpms[i]->data.emulator.logfile); } =20 return ret; diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 7e8f0a84be..08eb162b8c 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -1218,14 +1218,17 @@ get_files(vahControl * ctl) } =20 =20 - if (ctl->def->tpm) { + if (ctl->def->ntpms > 0) { char *shortName =3D NULL; const char *tpmpath =3D NULL; =20 - if (ctl->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { + for (i =3D 0; i < ctl->def->ntpms; i++) { + if (ctl->def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; + shortName =3D virDomainDefGetShortName(ctl->def); =20 - switch (ctl->def->tpm->version) { + switch (ctl->def->tpms[i]->version) { case VIR_DOMAIN_TPM_VERSION_1_2: tpmpath =3D "tpm1.2"; break; diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index f57d2a21b3..7dcffb6407 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -437,12 +437,13 @@ testCompareXMLToArgvCreateArgs(virQEMUDriverPtr drv, vsockPriv->vhostfd =3D 6789; } =20 - if (vm->def->tpm) { - if (vm->def->tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { - VIR_FREE(vm->def->tpm->data.emulator.source.data.file.path); - vm->def->tpm->data.emulator.source.data.file.path =3D g_strdup= ("/dev/test"); - vm->def->tpm->data.emulator.source.type =3D VIR_DOMAIN_CHR_TYP= E_FILE; - } + for (i =3D 0; i < vm->def->ntpms; i++) { + if (vm->def->tpms[i]->type !=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) + continue; + + VIR_FREE(vm->def->tpms[i]->data.emulator.source.data.file.path); + vm->def->tpms[i]->data.emulator.source.data.file.path =3D g_strdup= ("/dev/test"); + vm->def->tpms[i]->data.emulator.source.type =3D VIR_DOMAIN_CHR_TYP= E_FILE; } =20 for (i =3D 0; i < vm->def->nvideos; i++) { --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812762; cv=none; d=zohomail.com; s=zohoarc; b=mH/eYF/tNMhG0pQoLcXmB0him3Jm2Oz53iu6Kk5BQ+IBC7srSLUzjFbSnUffQYoMqgbu/H7mfUcTHGeN8z96fqt8lVwE8+4a85IxUc4o+coJxpQnrhQb6Ac0MNk7UaMN4jjyX7qGhU69WL1Hminj4dMOyBAyXskvCZmDKXQxKbs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812762; h=Content-Type:Content-Transfer-Encoding:Cc: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=AZpwZt4H7lfkRdzPwNN1+5sYpOCD4D2L2Xt0wUy0Hxg=; b=TAj8XvMErwvm2tjA2HGaRwHeYkRX92E6uH7T07sicc7bLyiSBbTPP4qwx4OG3EzJu2jyV/UDII9VJFpYcGW9AL/8k+zlTbim1Udw1w7qYKaH7mAQk4HvUtHhkA3wkPsGt7EwjqCc7/uDyPaq3WBn+MBiul9y8mifpGyZXLchza8= 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=fail 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 1591812762478416.0075737015611; Wed, 10 Jun 2020 11:12:42 -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-116-oXpt3QzHOJmAgguJryrS4w-1; Wed, 10 Jun 2020 14:12:39 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A9DB81902EA2; Wed, 10 Jun 2020 18:12:32 +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 8878060F8A; Wed, 10 Jun 2020 18:12:32 +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 5A3F7B34A6; Wed, 10 Jun 2020 18:12:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICID5020162 for ; Wed, 10 Jun 2020 14:12:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id F0C6E10F8E1E; Wed, 10 Jun 2020 18:12:17 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EC93810F8E1D for ; Wed, 10 Jun 2020 18:12:17 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D3295101A525 for ; Wed, 10 Jun 2020 18:12:17 +0000 (UTC) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-60-egJUlr1OOoKYKaxbqQMJqw-1; Wed, 10 Jun 2020 14:12:15 -0400 Received: by mail-qk1-f195.google.com with SMTP id n141so3006957qke.2 for ; Wed, 10 Jun 2020 11:12:15 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812761; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=AZpwZt4H7lfkRdzPwNN1+5sYpOCD4D2L2Xt0wUy0Hxg=; b=Fn+2RoxVpWsZC+kU9xDAuNBuOo8aTH3J0SmF7k6si7Vf3NU9AbQlKrPLsnLyi44bQdT1vt 0y+ktsVyZmGSTRY8XlpNa/0m30FBE+gfrdt7/5/gS9OT2ujWI/CHNQA31/ZAq6tpEJeckZ kre5KezFRfjRlb64nQRVCkgA3Vkswbw= X-MC-Unique: oXpt3QzHOJmAgguJryrS4w-1 X-MC-Unique: egJUlr1OOoKYKaxbqQMJqw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AZpwZt4H7lfkRdzPwNN1+5sYpOCD4D2L2Xt0wUy0Hxg=; b=eXQ248ZbOzW+oi+WZ4DQRL7CHsalZ3KZhWMj/iZ9Pyivvwp/VzjtuP/4T6ubHygfJh fagsrUH/g0lhLPQGxfk0abvyhvcjl0bipbZOZD0n8HP8bS0EQMZuW4DSmlxEcQz6wN8b 3eeOxvf3L1As9LZN/Ab6GR6ShQAm52Tyi+KV5QU9BilHAh1mFUaJaAjJEjY7Vl7av5Xd nCrsGZl1shNMX/tf7S1dDq3JJwko6BpOT5bycsuJq3keTVHsQlBR8SwXr2v6Y+CF6j6G H83TsVvHovHdL0tK7rnlFXR8R9jh3CB5HUmR23ClmjrODbto2S53QKHosF2RdBe/PNRV q6Iw== X-Gm-Message-State: AOAM532ND+xiq4r3QO3BSmaVqMLGOgN0S8f9Jgjt0BcEYseiG8HHxIxX AcflAQRAnK3M6pcxXZtDdyN87CIM X-Google-Smtp-Source: ABdhPJz2kaYKLPrDd6TKX3O7+rQziJBr+3y0mRFBviH3m2YbF0s3dFAqNQ3ZrW3dIpG6ciDOzfIFXQ== X-Received: by 2002:a05:620a:a56:: with SMTP id j22mr4334076qka.287.1591812734718; Wed, 10 Jun 2020 11:12:14 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 06/10] qemu: add validations after TPM Proxy model introduction Date: Wed, 10 Jun 2020 15:11:48 -0300 Message-Id: <20200610181152.374479-7-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.12 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" Previous patch handled the conversion of def->tpm to the array def->tpms and the XML parsing logic. This patch handles the validations needed to ensure the intended behavior. The existing qemuValidateDomainDeviceDefTPM() function was updated to guarantee that the VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY model is exclusive to PPC64 guests and to the VIR_DOMAIN_TPM_TYPE_PASSTHROUGH backend. A new function called qemuDomainDefTPMsPostParse() was added to guarantee that the following combinations in the same domain are valid: - a single TPM device - a single TPM Proxy device - a single TPM + single TPM Proxy devices And these combinations in the same domain are NOT valid: - 2 or more TPM devices - 2 or more TPM Proxy devices Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 37 +++++++++++++++++++++++++++++++++++++ src/qemu/qemu_validate.c | 19 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5de308d285..6586c86a8d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4963,6 +4963,40 @@ qemuDomainDefTsegPostParse(virDomainDefPtr def, } =20 =20 +static int +qemuDomainDefTPMsPostParse(virDomainDefPtr def) +{ + virDomainTPMDefPtr proxyTPM =3D NULL; + virDomainTPMDefPtr regularTPM =3D NULL; + size_t i; + + if (def->ntpms < 2) + return 0; + + for (i =3D 0; i < def->ntpms; i++) { + virDomainTPMDefPtr tpm =3D def->tpms[i]; + + if (tpm->model =3D=3D VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY) { + if (proxyTPM) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("only a single TPM Proxy device is suppor= ted")); + return -1; + } else { + proxyTPM =3D tpm; + } + } else if (regularTPM) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("only a single TPM non-proxy device is suppor= ted")); + return -1; + } else { + regularTPM =3D tpm; + } + } + + return 0; +} + + static int qemuDomainDefPostParseBasic(virDomainDefPtr def, void *opaque G_GNUC_UNUSED) @@ -5049,6 +5083,9 @@ qemuDomainDefPostParse(virDomainDefPtr def, if (qemuDomainDefTsegPostParse(def, qemuCaps) < 0) return -1; =20 + if (qemuDomainDefTPMsPostParse(def) < 0) + return -1; + return 0; } =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index b1a81ab193..f77030bd46 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -3655,6 +3655,25 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm, case VIR_DOMAIN_TPM_MODEL_SPAPR: flag =3D QEMU_CAPS_DEVICE_TPM_SPAPR; break; + case VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY: + if (!ARCH_IS_PPC64(def->os.arch)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TPM Proxy model %s is only available for " + "PPC64 guests"), + virDomainTPMModelTypeToString(tpm->model)); + return -1; + } + + /* TPM Proxy devices have 'passthrough' backend */ + if (tpm->type !=3D VIR_DOMAIN_TPM_TYPE_PASSTHROUGH) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("TPM Proxy model %s requires " + "'Passthrough' backend"), + virDomainTPMModelTypeToString(tpm->model)); + } + + flag =3D QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY; + break; case VIR_DOMAIN_TPM_MODEL_LAST: default: virReportEnumRangeError(virDomainTPMModel, tpm->model); --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812755; cv=none; d=zohomail.com; s=zohoarc; b=Qn5+PHT2YW0ZyJ9ViPZ5E6MUjZSf9xEOqCqebKX/nzUOtovb5VT/cVaL1RnZtqgvvnkAff+9LkO4iooUnaLDBHRyfnLaA5JWxwGFvgXYt1orBtvQmCTGGiQkxjqz+p7VFf8xcQUytY2Fp5jLIfTDzk8HSq8CHTRfznd0Xo91vf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812755; h=Content-Type:Content-Transfer-Encoding:Cc: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=jdvhPCBnFz/S81/CrIBzPTCq2nGlT6WVHY6sAPA4pCM=; b=QZIO7ZFrUu7PS+waOykmukTwFht7j6FL1sqM9T0v6hmtmopqxgRGMhtg855SiLO9Xt2x8O5UgKMoE/8gNLgZikvuVzsS4DQJRqzCfZ/ZIp8kfnIRtq38q/qbCWE8Dqqw2vakp3bQzjwiE89g5JY2op4FQ3Magdz0l60xokizfJg= 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=fail 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 1591812755410143.9782726148053; Wed, 10 Jun 2020 11:12:35 -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-380-tLw9hUDSNXuGEWmnZf6PMw-1; Wed, 10 Jun 2020 14:12:31 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AECD1108BD09; Wed, 10 Jun 2020 18:12:25 +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 8C11F10016E8; Wed, 10 Jun 2020 18:12:25 +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 5D394B34A6; Wed, 10 Jun 2020 18:12:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICNVm020188 for ; Wed, 10 Jun 2020 14:12:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8E43F2156A2E; Wed, 10 Jun 2020 18:12:23 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8932E2166BA2 for ; Wed, 10 Jun 2020 18:12:20 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6D3DF8316F3 for ; Wed, 10 Jun 2020 18:12:20 +0000 (UTC) Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-347-7ev5JC2VNXSpCnpfNga6-Q-1; Wed, 10 Jun 2020 14:12:18 -0400 Received: by mail-qt1-f195.google.com with SMTP id y1so2496264qtv.12 for ; Wed, 10 Jun 2020 11:12:17 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812753; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=jdvhPCBnFz/S81/CrIBzPTCq2nGlT6WVHY6sAPA4pCM=; b=D3+lrpWBc8N1skDJlft2W9iLzt8D8AQPzFXAm2sKk63kC75Ew/eLfyvArAc1dqEWn6V3NC FDkryBNHc/+vWdd7UJ1d4LBpOsiZWLUbAU3Ta+wlpEoIgIoHoXi+GBmlVrdA0tayXLQjHf M9zsj8bd4cMVcu1+sh2ie/nPIp4oZzE= X-MC-Unique: tLw9hUDSNXuGEWmnZf6PMw-1 X-MC-Unique: 7ev5JC2VNXSpCnpfNga6-Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jdvhPCBnFz/S81/CrIBzPTCq2nGlT6WVHY6sAPA4pCM=; b=DxNN8K5rP7O42/QB6kcYCbvyv7ONJoq4EwZ1sck3h4ZkhsCg1AECkLPIJn1w/9KCpV aqLtZOuZBwBElrgjJWRGoGEYuIla6Aey4W4WusGCoQ6dl48F7vxCvO2oxz4yKgz5Jcki N0SLSCyC8Zey0qIyYPKrcJU2P2GyImU9eS5HtMZFad6F8NVoi3QDyYCVY3x9ImbT++A0 0z+MXQaaYqs1J19ISP/fR6O2FWF1iJ1QEAp2i6lPj4qzSvzoAT8GD7eDNntMjO57GHEd JPVGjECNAZ+RO6GDNokwwd/vRhK0vwqPE0vlCy/L2nyNo7j2IXSUlUNF3IcAoJ+BR0dd zhWA== X-Gm-Message-State: AOAM530sMIrVkJTo+59COrBFTcgsp/9HPgzup6YN+XWk/15BdhQK2FzT jm6nKbXqlBx4NufEL5Ie0v6rsZv+ X-Google-Smtp-Source: ABdhPJy6V2UUHzKFFqONsOYVXiE93D5qTASYk+URKeeh2k6EEn7ROIWPo7LQ2qBYXKGGZNGXnZcyBQ== X-Received: by 2002:ac8:51d5:: with SMTP id d21mr4535509qtn.154.1591812736983; Wed, 10 Jun 2020 11:12:16 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 07/10] tests: add XML schema tests for the TPM Proxy device Date: Wed, 10 Jun 2020 15:11:49 -0300 Message-Id: <20200610181152.374479-8-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.84 on 10.5.11.22 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 tests aims to exercise how a TPM Proxy device can be added in the domain, either alone or with a regular TPM device. It also ensures that we do not allow bogus scenarios to slip by. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- tests/qemuxml2argvdata/ppc64-tpm-double.xml | 34 ++++++++++++++ .../ppc64-tpmproxy-double.xml | 38 +++++++++++++++ .../ppc64-tpmproxy-single.xml | 33 +++++++++++++ .../ppc64-tpmproxy-with-tpm.xml | 36 +++++++++++++++ tests/qemuxml2argvtest.c | 12 +++++ .../ppc64-tpmproxy-single.ppc64-latest.xml | 42 +++++++++++++++++ .../ppc64-tpmproxy-with-tpm.ppc64-latest.xml | 46 +++++++++++++++++++ tests/qemuxml2xmltest.c | 2 + 8 files changed, 243 insertions(+) create mode 100644 tests/qemuxml2argvdata/ppc64-tpm-double.xml create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-double.xml create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-single.xml create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.xml create mode 100644 tests/qemuxml2xmloutdata/ppc64-tpmproxy-single.ppc64-la= test.xml create mode 100644 tests/qemuxml2xmloutdata/ppc64-tpmproxy-with-tpm.ppc64-= latest.xml diff --git a/tests/qemuxml2argvdata/ppc64-tpm-double.xml b/tests/qemuxml2ar= gvdata/ppc64-tpm-double.xml new file mode 100644 index 0000000000..8730547a4d --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpm-double.xml @@ -0,0 +1,34 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + + +
+ + + diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-double.xml b/tests/qemux= ml2argvdata/ppc64-tpmproxy-double.xml new file mode 100644 index 0000000000..12abda509e --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-double.xml @@ -0,0 +1,38 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + + + + + + +
+ + + diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-single.xml b/tests/qemux= ml2argvdata/ppc64-tpmproxy-single.xml new file mode 100644 index 0000000000..729a2cdf28 --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-single.xml @@ -0,0 +1,33 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + +
+ + + diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.xml b/tests/qem= uxml2argvdata/ppc64-tpmproxy-with-tpm.xml new file mode 100644 index 0000000000..a61ec9845c --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.xml @@ -0,0 +1,36 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + + + + +
+ + + diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7dcffb6407..4578f17297 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3065,6 +3065,18 @@ mymain(void) QEMU_CAPS_NEC_USB_XHCI, QEMU_CAPS_DEVICE_QEMU_XHCI); =20 + DO_TEST_PARSE_ERROR("ppc64-tpmproxy-double", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, + QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY); + + DO_TEST_PARSE_ERROR("ppc64-tpm-double", + QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, + QEMU_CAPS_PCI_OHCI, + QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, + QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY); + DO_TEST("aarch64-usb-controller-qemu-xhci", QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_NEC_USB_XHCI, diff --git a/tests/qemuxml2xmloutdata/ppc64-tpmproxy-single.ppc64-latest.xm= l b/tests/qemuxml2xmloutdata/ppc64-tpmproxy-single.ppc64-latest.xml new file mode 100644 index 0000000000..4e0e5f24b8 --- /dev/null +++ b/tests/qemuxml2xmloutdata/ppc64-tpmproxy-single.ppc64-latest.xml @@ -0,0 +1,42 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + + POWER9 + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + + + + + +
+ + + + diff --git a/tests/qemuxml2xmloutdata/ppc64-tpmproxy-with-tpm.ppc64-latest.= xml b/tests/qemuxml2xmloutdata/ppc64-tpmproxy-with-tpm.ppc64-latest.xml new file mode 100644 index 0000000000..9b64f914f0 --- /dev/null +++ b/tests/qemuxml2xmloutdata/ppc64-tpmproxy-with-tpm.ppc64-latest.xml @@ -0,0 +1,46 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + + POWER9 + + + destroy + restart + restart + + /usr/bin/qemu-system-ppc64 + +
+ + + + + + + + + + + + +
+ + +
+ + + + diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 157e686f2a..e86df4a2aa 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -609,6 +609,8 @@ mymain(void) DO_TEST("controller-usb-order", QEMU_CAPS_PIIX_DISABLE_S3, QEMU_CAPS_PIIX_DISABLE_S4); + DO_TEST_CAPS_ARCH_LATEST("ppc64-tpmproxy-single", "ppc64"); + DO_TEST_CAPS_ARCH_LATEST("ppc64-tpmproxy-with-tpm", "ppc64"); =20 DO_TEST_FULL("seclabel-dynamic-baselabel", WHEN_INACTIVE, ARG_QEMU_CAPS, NONE); --=20 2.26.2 From nobody Fri May 3 11:53:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.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 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812768; cv=none; d=zohomail.com; s=zohoarc; b=Y8Ooo4XseQMDuLymMC6vDCchVL8EkekYfqMeZaBrgdTNJHXvEoZ0CTPQjEQG1Zv6BnLoSZYXanApzri0osOiUAfzoN8CgwlcKSWY7SQQ5Sxp369HwPIzTbgydzYcJmuKSPrY8huRpjN9wKdCOh8pCxLR+dxUs1TloH5yJP2Yl+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812768; h=Content-Type:Content-Transfer-Encoding:Cc: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=KKkTYu+3oC3qF8YQVAlKv5OZLzuAqM0xLKvawLh8bbw=; b=az+9X9Yq+0jzbyDnMzbvdpPnd6lRpW7yGQ2EZhO0oL5fsWflc2z/SeMVzjauk2zxCfzZv3+PDahgKJehCmkCd1t3Il1q7y/iL6k5yAkcoG5VnkmI8W4O08CQLDI9rdJueH3gUSgHb4Ba1lvLQmyUfz6BN04sEY7s0BA6+Wd1SpA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1591812768651567.2726988419012; Wed, 10 Jun 2020 11:12:48 -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-51-EW4gycAcNmSeAxLzHDywpg-1; Wed, 10 Jun 2020 14:12:42 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1C362108BD0D; Wed, 10 Jun 2020 18:12:37 +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 EDD11100EBDB; Wed, 10 Jun 2020 18:12:36 +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 BF2BF180043A; Wed, 10 Jun 2020 18:12:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICNWt020180 for ; Wed, 10 Jun 2020 14:12:23 -0400 Received: by smtp.corp.redhat.com (Postfix) id 234431007A2B; Wed, 10 Jun 2020 18:12:23 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1E9F310073DE for ; Wed, 10 Jun 2020 18:12:23 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 043D0858EE0 for ; Wed, 10 Jun 2020 18:12:23 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-218-bzLax9AXPYy0ZCyA3ZGW9w-1; Wed, 10 Jun 2020 14:12:19 -0400 Received: by mail-qt1-f193.google.com with SMTP id d27so2536306qtg.4 for ; Wed, 10 Jun 2020 11:12:19 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812767; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=KKkTYu+3oC3qF8YQVAlKv5OZLzuAqM0xLKvawLh8bbw=; b=bPs7GtCSNPWsLcff5lTzFAhygtUPFwmWMgx2LKhNuqUX9wztrPioA2yT661Tl5G7qB4JGh fOvdeSO4VoTti9yti9MUo2ztVm2AgpjgC5G0Zzht6RbHyAASf5qp8jwRlKePQv9k9UsIAn RHAo7zQqRo/KPhdgXl+on3d8hCM/y4A= X-MC-Unique: EW4gycAcNmSeAxLzHDywpg-1 X-MC-Unique: bzLax9AXPYy0ZCyA3ZGW9w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KKkTYu+3oC3qF8YQVAlKv5OZLzuAqM0xLKvawLh8bbw=; b=coAjfV6c9cMSMW8YoRrNWB3zxxLFY7EXJv2SqnjqT1YsBPyliF4cq6AvB47ZZ4DvnG +y5TtYJUrBcUNvQtrxxxK8UhUDjIqMDCVMlIrhP0JU6U7/Q3ojAnbCNqf3eSvmn8PctH xo9H12pJ8IKL+SbUR1ERLq0gV6AS3z9qsBsLJoJkxoxOQoJe6x5UDOcF/2EQqejhm++X kKxbuu9ttUq9LF2k0m/6sHF8JyhS6GjtA8wF8LXkaS9lhC+r9DO/dr6I2FZlrV/woX+A 0e7adiTXfCpo6jFwhWCPVlczujtI1SHoCfRYICjFjq7qVTC0ckk/uOUF4CW2maNakmaX ruNw== X-Gm-Message-State: AOAM5327xFinpPZrSG/57L2M1xJymv867n2q0az0sCQ+iSdEMpcE80hA swLIBPYhO4YvFa3MdFHY+2v8/6Ld X-Google-Smtp-Source: ABdhPJxKrwC96QkdUNr4imBryjoK7GO9jyAmwBxWdbUgrZJMDeDpQXSe5eBE/9oKN5EuQLqgNp+M5g== X-Received: by 2002:aed:24ce:: with SMTP id u14mr4504518qtc.31.1591812738969; Wed, 10 Jun 2020 11:12:18 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 08/10] qemu: build command line for the TPM Proxy device Date: Wed, 10 Jun 2020 15:11:50 -0300 Message-Id: <20200610181152.374479-9-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.84 on 10.5.11.22 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 patch wraps it up all the wiring done in previous patches, enabling a PPC64 guest to launch a guest using a TPM Proxy device. Note that device validation is already being done in qemu_validate.c, qemuValidateDomainDeviceDefTPM(), on domain define time. We don't need to verify QEMU capabilities for this device again inside qemu_command.c. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_alias.c | 5 ++++- src/qemu/qemu_command.c | 27 ++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 85fdb85940..bb7145d630 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -408,7 +408,10 @@ qemuAssignDeviceTPMAlias(virDomainTPMDefPtr tpm, if (tpm->info.alias) return 0; =20 - tpm->info.alias =3D g_strdup_printf("tpm%d", idx); + if (tpm->model =3D=3D VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY) + tpm->info.alias =3D g_strdup_printf("tpmproxy%d", idx); + else + tpm->info.alias =3D g_strdup_printf("tpm%d", idx); return 0; } =20 diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7ccf71e9ea..b16a128124 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9101,6 +9101,26 @@ qemuBuildTPMCommandLine(virCommandPtr cmd, } =20 =20 +static int +qemuBuildTPMProxyCommandLine(virCommandPtr cmd, + virDomainTPMDefPtr tpm) +{ + g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; + const char *filePath =3D NULL; + + filePath =3D tpm->data.passthrough.source.data.file.path; + + virCommandAddArg(cmd, "-device"); + virBufferAsprintf(&buf, "%s,id=3D%s,host-path=3D", + virDomainTPMModelTypeToString(tpm->model), + tpm->info.alias); + virQEMUBuildBufferEscapeComma(&buf, filePath); + virCommandAddArgBuffer(cmd, &buf); + + return 0; +} + + static int qemuBuildTPMsCommandLine(virCommandPtr cmd, const virDomainDef *def, @@ -9109,8 +9129,13 @@ qemuBuildTPMsCommandLine(virCommandPtr cmd, size_t i; =20 for (i =3D 0; i < def->ntpms; i++) { - if (qemuBuildTPMCommandLine(cmd, def, def->tpms[i], qemuCaps) < 0) + if (def->tpms[i]->model =3D=3D VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY) { + if (qemuBuildTPMProxyCommandLine(cmd, def->tpms[i]) < 0) + return -1; + } else if (qemuBuildTPMCommandLine(cmd, def, + def->tpms[i], qemuCaps) < 0) { return -1; + } } =20 return 0; --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812757; cv=none; d=zohomail.com; s=zohoarc; b=oESWJwiiYCBGe7ahE0c3/qa/cnjjhxvLcaI4eo3oHeB6Ueh13DfTJduO9XkkjlZyrEco7niNiZaKQuxhyu8VJG9j5udrOBwLByuhUuKhkN/HjJ96m/uJahlwFLYcdMtAS8dcaXJx4Eu5rtQib/lIYuh0chuNRAnpVFyOGxcTOp8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812757; h=Content-Type:Content-Transfer-Encoding:Cc: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=GWBSzDa/1DllU6d1uR8y2GFlnR364Oah1J0+JPcdD1c=; b=QZu9Equ4JOdn3+v1YFp0Y9uOWl5PiEoT2UhtZCHpkmcKBJWok6wSOwpSH9BOLT1u15B/OTd1sNEq32Zau7KnZ9n0sOO99xAQyX5O0NSil0+l8CEn7M0Tvw8sqIVzMoGEHv9nuP28RkfYolMXBaQF5ZXEBwvMMKgmUkJ8LWytv2g= 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1591812757915580.2948344245711; Wed, 10 Jun 2020 11:12:37 -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-464-zxHHK2U_Mf-xDT6aTOR27A-1; Wed, 10 Jun 2020 14:12:34 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D79E080572B; Wed, 10 Jun 2020 18:12:27 +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 B59FC19C71; Wed, 10 Jun 2020 18:12:27 +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 8887DB34B6; Wed, 10 Jun 2020 18:12:27 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICOAG020197 for ; Wed, 10 Jun 2020 14:12:25 -0400 Received: by smtp.corp.redhat.com (Postfix) id CA5AF2166BA3; Wed, 10 Jun 2020 18:12:24 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C5EF12166BA2 for ; Wed, 10 Jun 2020 18:12:24 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A4D911019CA9 for ; Wed, 10 Jun 2020 18:12:24 +0000 (UTC) Received: from mail-qt1-f193.google.com (mail-qt1-f193.google.com [209.85.160.193]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-369-S2guSOUQNNehEzGcypHthA-1; Wed, 10 Jun 2020 14:12:21 -0400 Received: by mail-qt1-f193.google.com with SMTP id k22so2522243qtm.6 for ; Wed, 10 Jun 2020 11:12:21 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812756; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=GWBSzDa/1DllU6d1uR8y2GFlnR364Oah1J0+JPcdD1c=; b=gywa4Jik0cKeSQpuPxWOJFaY1tq9LkuUjeJPqQxPMbiiheemFYMk5XwXO+2PxaQ++mKjwl VnR0ZbD5LYzansSQAJRreFXi6/pOGIssrzycotw+IqhkCIp4QuNtJw+1Bn54QgEkp2IBbg 1SLcNd3+S+nkz/4NnQzomeZpNkk9sYg= X-MC-Unique: zxHHK2U_Mf-xDT6aTOR27A-1 X-MC-Unique: S2guSOUQNNehEzGcypHthA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GWBSzDa/1DllU6d1uR8y2GFlnR364Oah1J0+JPcdD1c=; b=dyMErDKkaMd/Uau0zMC8OdOwMxFJJ97AsniFrejyy0UGWgSGOAcCiJVb8XeQ8t2o/2 cn7iwFbD6uWo3UX3vkt+Khp8LbhLYM08YyFHlXk3EuCNvS6bR57P0k9oEYFYIkE68AQ7 RDe60vCuQo1WngJfgH7Ab95tP0lc6/4W4D6HAABDuJML5+2b914rlwyW+b03x71TPkt3 7kDmPJxQf+A0Se0kk1fqrNV2J/h1DzWTCCCcqzB0ch3jA8bZy0rKt84KXp4aVEU7XjEB aiVjgqllZIpdZDVoi0CoXxQ98GPP9FAjt+wEpgCQmi/4Rjs+nyT/KtyGQBNg3CKBV9ON NEOQ== X-Gm-Message-State: AOAM533ZzghOrmzSHeM20BR6tEhzH4K2r2j/cIy6gQ68AJFKHuj8948d Gt3Fo1MwRokzS9UH+6og/tfCrcXe X-Google-Smtp-Source: ABdhPJzW5ArJIww/b+wGZz7ejv1bdD+mJ/YqEAp9V3IWnNIUIN4OA5GCrmwCcNsk5gLy1znMmPJ1Uw== X-Received: by 2002:ac8:6b85:: with SMTP id z5mr4610316qts.191.1591812741059; Wed, 10 Jun 2020 11:12:21 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 09/10] tests/qemuxml2argvtest.c: add TPM Proxy command line tests Date: Wed, 10 Jun 2020 15:11:51 -0300 Message-Id: <20200610181152.374479-10-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.84 on 10.5.11.23 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" Add tests for both supported scenarios: a single TPM Proxy and a TPM Proxy with a regular TPM device in the same domain. Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- .../ppc64-tpmproxy-single.ppc64-latest.args | 34 +++++++++++++++++ .../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 37 +++++++++++++++++++ tests/qemuxml2argvtest.c | 3 ++ 3 files changed, 74 insertions(+) create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-single.ppc64-late= st.args create mode 100644 tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-la= test.args diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-single.ppc64-latest.args= b/tests/qemuxml2argvdata/ppc64-tpmproxy-single.ppc64-latest.args new file mode 100644 index 0000000000..f606cee16b --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-single.ppc64-latest.args @@ -0,0 +1,34 @@ +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-ppc64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object secret,id=3DmasterKey0,format=3Draw,\ +file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ +-machine pseries,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff \ +-cpu POWER9 \ +-m 256 \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device pci-ohci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \ +-device spapr-tpm-proxy,id=3Dtpmproxy0,host-path=3D/dev/tpmrm0 \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x6 \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ +resourcecontrol=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.ar= gs b/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args new file mode 100644 index 0000000000..83eb58ae19 --- /dev/null +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args @@ -0,0 +1,37 @@ +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-ppc64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object secret,id=3DmasterKey0,format=3Draw,\ +file=3D/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ +-machine pseries,accel=3Dtcg,usb=3Doff,dump-guest-core=3Doff \ +-cpu POWER9 \ +-m 256 \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server,nowait \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device pci-ohci,id=3Dusb,bus=3Dpci.0,addr=3D0x1 \ +-device spapr-tpm-proxy,id=3Dtpmproxy0,host-path=3D/dev/tpmrm0 \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ +-chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-device tpm-spapr,tpmdev=3Dtpm-tpm0,id=3Dtpm0,reg=3D0x00004000 \ +-device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x6 \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,\ +resourcecontrol=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 4578f17297..39ff55f978 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3077,6 +3077,9 @@ mymain(void) QEMU_CAPS_DEVICE_TPM_PASSTHROUGH, QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY); =20 + DO_TEST_CAPS_LATEST_PPC64("ppc64-tpmproxy-single"); + DO_TEST_CAPS_LATEST_PPC64("ppc64-tpmproxy-with-tpm"); + DO_TEST("aarch64-usb-controller-qemu-xhci", QEMU_CAPS_OBJECT_GPEX, QEMU_CAPS_NEC_USB_XHCI, --=20 2.26.2 From nobody Fri May 3 11:53:48 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=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1591812759; cv=none; d=zohomail.com; s=zohoarc; b=T65lq00fJQGyaJ3Iz+jifILvYOZ6QlFjv9aOPZLASkGqRkWi5pEFE+RU37m5EpWgmI3yLOXpe3vPoLXQEpBXg+qsa6u1sSrOVUaguWXhYj0lewGyus30+vwdjItGTtz2K+F32Cr620+EjDffiwbZLegnyXP1XfZnIKOSLF1pjPw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1591812759; h=Content-Type:Content-Transfer-Encoding:Cc: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=R2i4POPIS1FPUf8NFhxynC9OZfN2loaVpT26r5fs5wo=; b=V8WAswBym9MfM8SBlPOSsTpRgPOAFW5KQ/c2plrByItSDhm8XSKI7gcKoT2YNdo9PiNWzSyn6x3Vq4r8O+BfFvzuOMjpGFqjblhvp8n84IAqkAQKSkE/nNzkG4nTIYoy3d80Hr7L5C6NkM+10clonLXyE1ZJHLm1595Ner6Z/6U= 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1591812759935480.0008581278689; Wed, 10 Jun 2020 11:12:39 -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-239-Hrv0PmUROfiIfkRNowkWeQ-1; Wed, 10 Jun 2020 14:12:36 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 07EAC1902EA4; Wed, 10 Jun 2020 18:12:31 +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 DCBDF7C39C; Wed, 10 Jun 2020 18:12:30 +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 A97CD1806B0B; Wed, 10 Jun 2020 18:12:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 05AICSlr020220 for ; Wed, 10 Jun 2020 14:12:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id B38EF2166BA3; Wed, 10 Jun 2020 18:12:28 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AF3BE2166BA2 for ; Wed, 10 Jun 2020 18:12:28 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 95A4D811E7A for ; Wed, 10 Jun 2020 18:12:28 +0000 (UTC) Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-504-EWvJlvTyOLK7B8ZJX2-iBg-1; Wed, 10 Jun 2020 14:12:24 -0400 Received: by mail-qt1-f195.google.com with SMTP id u17so2548734qtq.1 for ; Wed, 10 Jun 2020 11:12:24 -0700 (PDT) Received: from rekt.ibmuc.com ([2804:431:c7c6:b081:e954:9388:2ec6:d6f4]) by smtp.gmail.com with ESMTPSA id z4sm569415qtu.33.2020.06.10.11.12.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 11:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1591812758; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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=R2i4POPIS1FPUf8NFhxynC9OZfN2loaVpT26r5fs5wo=; b=aRyGJKGOo1KsuqpmGV8NflwzpiwM7gmNKvUlyjrd8qeK7fHIlM2lvpLq9v9gptzG7uB+OR q9su6mSFURsO8QujnJTB5qatdio3bPpWIxiOnJVXFIokKc7VH49R6kRGp1O2rfr3a9YsZA d/EIgNLEO5y4M5N/7iO1i0aerT2lyOY= X-MC-Unique: Hrv0PmUROfiIfkRNowkWeQ-1 X-MC-Unique: EWvJlvTyOLK7B8ZJX2-iBg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=R2i4POPIS1FPUf8NFhxynC9OZfN2loaVpT26r5fs5wo=; b=nGLs1gGGzNady5jRNBXpfm6mg5IWfaDtLuZdY1HAMiPmrkZI/J+WG81JBo/Uii57k9 98gHSJBU4+cNf9mawpQ28HQ8gPUhXzA/9sGCJXLxQme6rzKdqEGZwsY1ICfaRTvkKO3N HQXm4tETuLpgKGdyKW5TGUaEcL5uHmxayg2uFTTQvcaYl9KxSDHmeaZ+nFx/mcamz0iS OvwIfQfjdPrjDKXzbZMLQzo/xKwkn9WHSd2ldP2sCW9GVSeul2aqMAIovmexSX5NWEiR 6K7kKM9GuywR2zVFFMH26r/hR+StvFaHlkxyfmMmNU5X6bslLbyOhbvqFDNVcM+ee5id 4dPA== X-Gm-Message-State: AOAM533o20ZlwHwsOLYkPg6glvPJENNTSDRJMilLBv74WHQjRJJV+xsL iPsqMmHcl99OsfQPuFPXfQqlklfl X-Google-Smtp-Source: ABdhPJwW3ax5RTCMcpzWRNjfhWmSI94o0lLHeOS+eRcL2YrrSdYjpS0/B/vfd8cF42uH1hazoch/dw== X-Received: by 2002:ac8:3f14:: with SMTP id c20mr4689057qtk.22.1591812743510; Wed, 10 Jun 2020 11:12:23 -0700 (PDT) From: Daniel Henrique Barboza To: libvir-list@redhat.com Subject: [PATCH v7 10/10] NEWS.rst: update for the new TPM Proxy device Date: Wed, 10 Jun 2020 15:11:52 -0300 Message-Id: <20200610181152.374479-11-danielhb413@gmail.com> In-Reply-To: <20200610181152.374479-1-danielhb413@gmail.com> References: <20200610181152.374479-1-danielhb413@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Daniel Henrique Barboza , stefanb@linux.ibm.com, sathnaga@linux.vnet.ibm.com, david@gibson.dropbear.id.au 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.15 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" Tested-by: Satheesh Rajendran Reviewed-by: Stefan Berger Signed-off-by: Daniel Henrique Barboza Reviewed-by: J=C3=A1n Tomko --- NEWS.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index a16903c7c3..9feb09b6bc 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -21,6 +21,19 @@ v6.5.0 (unreleased) It's possible to either specify new value as a string or provide a filename which contents then serve as the value. =20 + * QEMU: add TPM Proxy device support + + libvirt can now create guests using a new device type called + "TPM Proxy". The TPM Proxy connects to a TPM Resource Manager + present in the host, enabling the guest to run in secure virtual + machine mode with the help of an Ultravisor. Adding a TPM Proxy to + a pSeries guest brings no security benefits unless the guest is + running on a PPC64 host that has Ultravisor and TPM Resource Manager + support. Only one TPM Proxy is allowed per guest. A guest using + a TPM Proxy device can instantiate another TPM device at the same + time. This device is supported only for pSeries guests via the new + 'spapr-tpm-proxy' model of the TPM 'passthrough' backend. + * **Improvements** =20 * **Bug fixes** --=20 2.26.2