linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <michael.roth@amd.com>
To: <kvm@vger.kernel.org>
Cc: <linux-coco@lists.linux.dev>, <linux-mm@kvack.org>,
	<linux-crypto@vger.kernel.org>, <x86@kernel.org>,
	<linux-kernel@vger.kernel.org>, <tglx@linutronix.de>,
	<mingo@redhat.com>, <jroedel@suse.de>, <thomas.lendacky@amd.com>,
	<hpa@zytor.com>, <ardb@kernel.org>, <pbonzini@redhat.com>,
	<seanjc@google.com>, <vkuznets@redhat.com>, <jmattson@google.com>,
	<luto@kernel.org>, <dave.hansen@linux.intel.com>,
	<slp@redhat.com>, <pgonda@google.com>, <peterz@infradead.org>,
	<srinivas.pandruvada@linux.intel.com>, <rientjes@google.com>,
	<dovmurik@linux.ibm.com>, <tobin@ibm.com>, <bp@alien8.de>,
	<vbabka@suse.cz>, <kirill@shutemov.name>, <ak@linux.intel.com>,
	<tony.luck@intel.com>, <marcorr@google.com>,
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	<alpergun@google.com>, <jarkko@kernel.org>,
	<ashish.kalra@amd.com>, <nikunj.dadhania@amd.com>,
	<pankaj.gupta@amd.com>, <liam.merwick@oracle.com>,
	<zhi.a.wang@intel.com>, Dionna Glaze <dionnaglaze@google.com>,
	Tom Lendacky <Thomas.Lendacky@amd.com>,
	Alexey Kardashevskiy <aik@amd.com>
Subject: [PATCH v10 47/50] x86/sev: Add KVM commands for per-instance certs
Date: Mon, 16 Oct 2023 08:28:16 -0500	[thread overview]
Message-ID: <20231016132819.1002933-48-michael.roth@amd.com> (raw)
In-Reply-To: <20231016132819.1002933-1-michael.roth@amd.com>

From: Dionna Glaze <dionnaglaze@google.com>

The /dev/sev device has the ability to store host-wide certificates for
the key used by the AMD-SP for SEV-SNP attestation report signing,
but for hosts that want to specify additional certificates that are
specific to the image launched in a VM, a different way is needed to
communicate those certificates.

Add two new KVM ioctl to handle this: KVM_SEV_SNP_{GET,SET}_CERTS

The certificates that are set with this command are expected to follow
the same format as the host certificates, but that format is opaque
to the kernel.

The new behavior for custom certificates is that the extended guest
request command will now return the overridden certificates if they
were installed for the instance. The error condition for a too small
data buffer is changed to return the overridden certificate data size
if there is an overridden certificate set installed.

Setting a 0 length certificate returns the system state to only return
the host certificates on an extended guest request.

Also increase the SEV_FW_BLOB_MAX_SIZE another 4K page to allow space
for an extra certificate.

Cc: Tom Lendacky <Thomas.Lendacky@amd.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
Signed-off-by: Ashish Kalra <ashish.kalra@amd.com>
[mdr: remove used of "we" and "this patch" in commit log, squash in
      documentation patch]
Signed-off-by: Michael Roth <michael.roth@amd.com>
[aik: snp_handle_ext_guest_request() now uses the CCP's cert object
      without copying things over, only refcounting needed.]
Signed-off-by: Alexey Kardashevskiy <aik@amd.com>
---
 .../virt/kvm/x86/amd-memory-encryption.rst    |  44 +++++++
 arch/x86/kvm/svm/sev.c                        | 115 ++++++++++++++++++
 arch/x86/kvm/svm/svm.h                        |   1 +
 include/linux/psp-sev.h                       |   2 +-
 include/uapi/linux/kvm.h                      |  12 ++
 5 files changed, 173 insertions(+), 1 deletion(-)

diff --git a/Documentation/virt/kvm/x86/amd-memory-encryption.rst b/Documentation/virt/kvm/x86/amd-memory-encryption.rst
index b89634cfcc06..2ce6c90f07d4 100644
--- a/Documentation/virt/kvm/x86/amd-memory-encryption.rst
+++ b/Documentation/virt/kvm/x86/amd-memory-encryption.rst
@@ -537,6 +537,50 @@ Returns: 0 on success, -negative on error
 
 See SEV-SNP specification for further details on launch finish input parameters.
 
+22. KVM_SEV_SNP_GET_CERTS
+-------------------------
+
+After the SNP guest launch flow has started, the KVM_SEV_SNP_GET_CERTS command
+can be issued to request the data that has been installed with the
+KVM_SEV_SNP_SET_CERTS command.
+
+Parameters (in/out): struct kvm_sev_snp_get_certs
+
+Returns: 0 on success, -negative on error
+
+::
+
+	struct kvm_sev_snp_get_certs {
+		__u64 certs_uaddr;
+		__u64 certs_len
+	};
+
+If no certs have been installed, then the return value is -ENOENT.
+If the buffer specified in the struct is too small, the certs_len field will be
+overwritten with the required bytes to receive all the certificate bytes and the
+return value will be -EINVAL.
+
+23. KVM_SEV_SNP_SET_CERTS
+-------------------------
+
+After the SNP guest launch flow has started, the KVM_SEV_SNP_SET_CERTS command
+can be issued to override the /dev/sev certs data that is returned when a
+guest issues an extended guest request. This is useful for instance-specific
+extensions to the host certificates.
+
+Parameters (in/out): struct kvm_sev_snp_set_certs
+
+Returns: 0 on success, -negative on error
+
+::
+
+	struct kvm_sev_snp_set_certs {
+		__u64 certs_uaddr;
+		__u64 certs_len
+	};
+
+The certs_len field may not exceed SEV_FW_BLOB_MAX_SIZE.
+
 References
 ==========
 
diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index efe879524b6c..602aaf82eef3 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -2301,6 +2301,113 @@ static int snp_launch_finish(struct kvm *kvm, struct kvm_sev_cmd *argp)
 	return ret;
 }
 
+static int snp_get_instance_certs(struct kvm *kvm, struct kvm_sev_cmd *argp)
+{
+	struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
+	struct kvm_sev_snp_get_certs params;
+	struct sev_snp_certs *snp_certs;
+	int rc = 0;
+
+	if (!sev_snp_guest(kvm))
+		return -ENOTTY;
+
+	if (!sev->snp_context)
+		return -EINVAL;
+
+	if (copy_from_user(&params, (void __user *)(uintptr_t)argp->data,
+			   sizeof(params)))
+		return -EFAULT;
+
+	snp_certs = sev_snp_certs_get(sev->snp_certs);
+	/* No instance certs set. */
+	if (!snp_certs)
+		return -ENOENT;
+
+	if (params.certs_len < sev->snp_certs->len) {
+		/* Output buffer too small. Return the required size. */
+		params.certs_len = sev->snp_certs->len;
+
+		if (copy_to_user((void __user *)(uintptr_t)argp->data, &params,
+				 sizeof(params)))
+			rc = -EFAULT;
+		else
+			rc = -EINVAL; /* May be ENOSPC? */
+	} else {
+		if (copy_to_user((void __user *)(uintptr_t)params.certs_uaddr,
+				 snp_certs->data, snp_certs->len))
+			rc = -EFAULT;
+	}
+
+	sev_snp_certs_put(snp_certs);
+
+	return rc;
+}
+
+static void snp_replace_certs(struct kvm_sev_info *sev, struct sev_snp_certs *snp_certs)
+{
+	sev_snp_certs_put(sev->snp_certs);
+	sev->snp_certs = snp_certs;
+}
+
+static int snp_set_instance_certs(struct kvm *kvm, struct kvm_sev_cmd *argp)
+{
+	struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
+	unsigned long length = SEV_FW_BLOB_MAX_SIZE;
+	struct kvm_sev_snp_set_certs params;
+	struct sev_snp_certs *snp_certs;
+	void *to_certs;
+	int ret;
+
+	if (!sev_snp_guest(kvm))
+		return -ENOTTY;
+
+	if (!sev->snp_context)
+		return -EINVAL;
+
+	if (copy_from_user(&params, (void __user *)(uintptr_t)argp->data,
+			   sizeof(params)))
+		return -EFAULT;
+
+	if (params.certs_len > SEV_FW_BLOB_MAX_SIZE)
+		return -EINVAL;
+
+	/*
+	 * Setting a length of 0 is the same as "uninstalling" instance-
+	 * specific certificates.
+	 */
+	if (params.certs_len == 0) {
+		snp_replace_certs(sev, NULL);
+		return 0;
+	}
+
+	/* Page-align the length */
+	length = ALIGN(params.certs_len, PAGE_SIZE);
+
+	to_certs = kmalloc(length, GFP_KERNEL | __GFP_ZERO);
+	if (!to_certs)
+		return -ENOMEM;
+
+	if (copy_from_user(to_certs,
+			   (void __user *)(uintptr_t)params.certs_uaddr,
+			   params.certs_len)) {
+		ret = -EFAULT;
+		goto error_exit;
+	}
+
+	snp_certs = sev_snp_certs_new(to_certs, length);
+	if (!snp_certs) {
+		ret = -ENOMEM;
+		goto error_exit;
+	}
+
+	snp_replace_certs(sev, snp_certs);
+
+	return 0;
+error_exit:
+	kfree(to_certs);
+	return ret;
+}
+
 int sev_mem_enc_ioctl(struct kvm *kvm, void __user *argp)
 {
 	struct kvm_sev_cmd sev_cmd;
@@ -2400,6 +2507,12 @@ int sev_mem_enc_ioctl(struct kvm *kvm, void __user *argp)
 	case KVM_SEV_SNP_LAUNCH_FINISH:
 		r = snp_launch_finish(kvm, &sev_cmd);
 		break;
+	case KVM_SEV_SNP_GET_CERTS:
+		r = snp_get_instance_certs(kvm, &sev_cmd);
+		break;
+	case KVM_SEV_SNP_SET_CERTS:
+		r = snp_set_instance_certs(kvm, &sev_cmd);
+		break;
 	default:
 		r = -EINVAL;
 		goto out;
@@ -2616,6 +2729,8 @@ static int snp_decommission_context(struct kvm *kvm)
 	snp_free_firmware_page(sev->snp_context);
 	sev->snp_context = NULL;
 
+	sev_snp_certs_put(sev->snp_certs);
+
 	return 0;
 }
 
diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h
index 1fd90a88b0db..bdf792ba06e1 100644
--- a/arch/x86/kvm/svm/svm.h
+++ b/arch/x86/kvm/svm/svm.h
@@ -97,6 +97,7 @@ struct kvm_sev_info {
 	u64 snp_init_flags;
 	void *snp_context;      /* SNP guest context page */
 	u64 sev_features;	/* Features set at VMSA creation */
+	struct sev_snp_certs *snp_certs;
 };
 
 struct kvm_svm {
diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h
index 3c605856ef4f..722e26d28d2f 100644
--- a/include/linux/psp-sev.h
+++ b/include/linux/psp-sev.h
@@ -14,7 +14,7 @@
 
 #include <uapi/linux/psp-sev.h>
 
-#define SEV_FW_BLOB_MAX_SIZE	0x4000	/* 16KB */
+#define SEV_FW_BLOB_MAX_SIZE	0x5000	/* 20KB */
 
 struct sev_snp_certs {
 	void *data;
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 3af546adb962..0444e122ac5e 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -1973,6 +1973,8 @@ enum sev_cmd_id {
 	KVM_SEV_SNP_LAUNCH_START,
 	KVM_SEV_SNP_LAUNCH_UPDATE,
 	KVM_SEV_SNP_LAUNCH_FINISH,
+	KVM_SEV_SNP_GET_CERTS,
+	KVM_SEV_SNP_SET_CERTS,
 
 	KVM_SEV_NR_MAX,
 };
@@ -2120,6 +2122,16 @@ struct kvm_sev_snp_launch_finish {
 	__u8 pad[6];
 };
 
+struct kvm_sev_snp_get_certs {
+	__u64 certs_uaddr;
+	__u64 certs_len;
+};
+
+struct kvm_sev_snp_set_certs {
+	__u64 certs_uaddr;
+	__u64 certs_len;
+};
+
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU	(1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3		(1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX	(1 << 2)
-- 
2.25.1


  parent reply	other threads:[~2023-10-16 13:47 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-16 13:27 [PATCH v10 00/50] Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support Michael Roth
2023-10-16 13:27 ` [PATCH v10 01/50] KVM: SVM: INTERCEPT_RDTSCP is never intercepted anyway Michael Roth
2023-10-16 15:12   ` Greg KH
2023-10-16 15:14     ` Paolo Bonzini
2023-10-16 15:21       ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 02/50] KVM: SVM: Fix TSC_AUX virtualization setup Michael Roth
2023-10-16 13:27 ` [PATCH v10 03/50] KVM: SEV: Do not intercept accesses to MSR_IA32_XSS for SEV-ES guests Michael Roth
2023-12-13 12:50   ` Paolo Bonzini
2023-12-13 17:30     ` Sean Christopherson
2023-12-13 17:40       ` Paolo Bonzini
2023-10-16 13:27 ` [PATCH v10 04/50] x86/cpufeatures: Add SEV-SNP CPU feature Michael Roth
2023-12-13 12:51   ` Paolo Bonzini
2023-12-13 13:13     ` Borislav Petkov
2023-12-13 13:31       ` Paolo Bonzini
2023-12-13 13:36         ` Borislav Petkov
2023-12-13 13:40           ` Paolo Bonzini
2023-12-13 13:49             ` Borislav Petkov
2023-12-13 14:18               ` Paolo Bonzini
2023-12-13 15:41                 ` Borislav Petkov
2023-12-13 17:35                   ` Paolo Bonzini
2023-12-13 18:53                     ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 05/50] x86/speculation: Do not enable Automatic IBRS if SEV SNP is enabled Michael Roth
2023-10-25 17:33   ` Borislav Petkov
2023-10-27 21:50   ` Dave Hansen
2023-12-13 12:52   ` Paolo Bonzini
2023-10-16 13:27 ` [PATCH v10 06/50] x86/sev: Add the host SEV-SNP initialization support Michael Roth
2023-10-25 18:19   ` Tom Lendacky
2023-11-07 16:31   ` Borislav Petkov
2023-11-07 18:32     ` Tom Lendacky
2023-11-07 19:13       ` Borislav Petkov
2023-11-08  8:21       ` Jeremi Piotrowski
2023-11-08 15:19         ` Tom Lendacky
2023-11-07 19:00     ` Kalra, Ashish
2023-11-07 19:19       ` Borislav Petkov
2023-11-07 20:27         ` Borislav Petkov
2023-11-07 21:21           ` Kalra, Ashish
2023-11-07 21:27             ` Borislav Petkov
2023-11-07 22:08               ` Borislav Petkov
2023-11-07 22:33                 ` Kalra, Ashish
2023-11-08  6:14                   ` Borislav Petkov
2023-11-08  9:11                     ` Jeremi Piotrowski
2023-11-08 19:53                     ` Kalra, Ashish
2023-12-08 17:09       ` Jeremi Piotrowski
2023-12-08 23:21         ` Kalra, Ashish
2023-12-20  7:07     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 07/50] x86/sev: Add RMP entry lookup helpers Michael Roth
2023-11-14 14:24   ` Borislav Petkov
2023-12-19  3:31     ` Michael Roth
2024-01-09 22:07       ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 08/50] x86/fault: Add helper for dumping RMP entries Michael Roth
2023-11-15 16:08   ` Borislav Petkov
2023-12-19  6:08     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 09/50] x86/traps: Define RMP violation #PF error code Michael Roth
2023-10-16 14:14   ` Dave Hansen
2023-10-16 14:55     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 10/50] x86/fault: Report RMP page faults for kernel addresses Michael Roth
2023-11-21 15:23   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 11/50] x86/sev: Add helper functions for RMPUPDATE and PSMASH instruction Michael Roth
2023-11-21 16:21   ` Borislav Petkov
2023-12-19 16:20     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 12/50] x86/sev: Invalidate pages from the direct map when adding them to the RMP table Michael Roth
2023-11-24 14:20   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 13/50] crypto: ccp: Define the SEV-SNP commands Michael Roth
2023-11-24 14:36   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 14/50] crypto: ccp: Add support to initialize the AMD-SP for SEV-SNP Michael Roth
2023-11-27  9:59   ` Borislav Petkov
2023-11-30  2:13     ` Kalra, Ashish
2023-12-06 17:08       ` Borislav Petkov
2023-12-06 20:35         ` Kalra, Ashish
2023-12-09 16:20           ` Borislav Petkov
2023-12-11 21:11             ` Kalra, Ashish
2023-12-12  6:52               ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 15/50] crypto: ccp: Provide API to issue SEV and SNP commands Michael Roth
2023-12-06 20:21   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 16/50] x86/sev: Introduce snp leaked pages list Michael Roth
2023-12-06 20:42   ` Borislav Petkov
2023-12-08 20:54     ` Kalra, Ashish
2023-12-07 16:20   ` Vlastimil Babka
2023-12-08 22:10     ` Kalra, Ashish
2023-12-11 13:08       ` Vlastimil Babka
2023-12-12 23:26         ` Kalra, Ashish
2023-10-16 13:27 ` [PATCH v10 17/50] crypto: ccp: Handle the legacy TMR allocation when SNP is enabled Michael Roth
2023-12-08 13:05   ` Borislav Petkov
2023-12-19 23:46     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 18/50] crypto: ccp: Handle the legacy SEV command " Michael Roth
2023-12-09 15:36   ` Borislav Petkov
2023-12-29 21:38     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 19/50] crypto: ccp: Add the SNP_PLATFORM_STATUS command Michael Roth
2023-12-12 16:45   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 20/50] KVM: SEV: Select CONFIG_KVM_SW_PROTECTED_VM when CONFIG_KVM_AMD_SEV=y Michael Roth
2023-12-13 12:54   ` Paolo Bonzini
2023-12-29 21:41     ` Michael Roth
2023-12-18 10:13   ` Borislav Petkov
2023-12-29 21:40     ` Michael Roth
2023-10-16 13:27 ` [PATCH v10 21/50] KVM: SEV: Add support to handle AP reset MSR protocol Michael Roth
2023-12-12 17:02   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 22/50] KVM: SEV: Add GHCB handling for Hypervisor Feature Support requests Michael Roth
2023-12-18 10:23   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 23/50] KVM: SEV: Make AVIC backing, VMSA and VMCB memory allocation SNP safe Michael Roth
2023-12-11 13:24   ` Vlastimil Babka
2023-12-12  0:00     ` Kalra, Ashish
2023-12-13 13:31   ` Paolo Bonzini
2023-12-13 18:45   ` Paolo Bonzini
2023-12-18 14:57   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 24/50] KVM: SEV: Add initial SEV-SNP support Michael Roth
2023-12-18 17:43   ` Borislav Petkov
2023-10-16 13:27 ` [PATCH v10 25/50] KVM: SEV: Add KVM_SNP_INIT command Michael Roth
2023-10-16 13:27 ` [PATCH v10 26/50] KVM: SEV: Add KVM_SEV_SNP_LAUNCH_START command Michael Roth
2023-10-16 13:27 ` [PATCH v10 27/50] KVM: Add HVA range operator Michael Roth
2023-10-16 13:27 ` [PATCH v10 28/50] KVM: SEV: Add KVM_SEV_SNP_LAUNCH_UPDATE command Michael Roth
2023-10-16 13:27 ` [PATCH v10 29/50] KVM: SEV: Add KVM_SEV_SNP_LAUNCH_FINISH command Michael Roth
2023-10-16 13:27 ` [PATCH v10 30/50] KVM: SEV: Add support to handle GHCB GPA register VMGEXIT Michael Roth
2023-10-16 13:28 ` [PATCH v10 31/50] KVM: SEV: Add KVM_EXIT_VMGEXIT Michael Roth
2023-10-16 13:28 ` [PATCH v10 32/50] KVM: SEV: Add support to handle MSR based Page State Change VMGEXIT Michael Roth
2023-10-16 13:28 ` [PATCH v10 33/50] KVM: SEV: Add support to handle " Michael Roth
2023-10-16 13:28 ` [PATCH v10 34/50] KVM: x86: Export the kvm_zap_gfn_range() for the SNP use Michael Roth
2023-10-16 13:28 ` [PATCH v10 35/50] KVM: SEV: Add support to handle RMP nested page faults Michael Roth
2023-10-16 13:28 ` [PATCH v10 36/50] KVM: SEV: Use a VMSA physical address variable for populating VMCB Michael Roth
2023-10-16 13:28 ` [PATCH v10 37/50] KVM: SEV: Support SEV-SNP AP Creation NAE event Michael Roth
2023-10-16 13:28 ` [PATCH v10 38/50] KVM: SEV: Add support for GHCB-based termination requests Michael Roth
2023-10-19 12:20   ` Liam Merwick
2023-10-16 13:28 ` [PATCH v10 39/50] KVM: SEV: Implement gmem hook for initializing private pages Michael Roth
2023-10-16 13:28 ` [PATCH v10 40/50] KVM: SEV: Implement gmem hook for invalidating " Michael Roth
2023-10-16 13:28 ` [PATCH v10 41/50] KVM: x86: Add gmem hook for determining max NPT mapping level Michael Roth
2023-10-16 13:28 ` [PATCH v10 42/50] KVM: SEV: Avoid WBINVD for HVA-based MMU notifications for SNP Michael Roth
2023-10-16 13:28 ` [PATCH v10 43/50] KVM: SVM: Add module parameter to enable the SEV-SNP Michael Roth
2023-10-16 13:28 ` [PATCH v10 44/50] iommu/amd: Add IOMMU_SNP_SHUTDOWN support Michael Roth
2023-10-16 13:28 ` [PATCH v10 45/50] iommu/amd: Report all cases inhibiting SNP enablement Michael Roth
2023-10-16 13:28 ` [PATCH v10 46/50] crypto: ccp: Add the SNP_{SET,GET}_EXT_CONFIG command Michael Roth
2023-10-16 23:11   ` Dionna Amalie Glaze
2023-10-16 13:28 ` Michael Roth [this message]
2023-10-16 13:28 ` [PATCH v10 48/50] KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event Michael Roth
2023-10-16 23:18   ` Dionna Amalie Glaze
2023-10-17 16:27     ` Sean Christopherson
2023-10-18  2:28       ` Alexey Kardashevskiy
2023-10-18 13:48         ` Sean Christopherson
2023-10-18 20:27           ` Kalra, Ashish
2023-10-18 20:38             ` Sean Christopherson
2023-10-18 21:27               ` Kalra, Ashish
2023-10-18 21:43                 ` Sean Christopherson
2023-10-19  2:48           ` Alexey Kardashevskiy
2023-10-19 14:57             ` Sean Christopherson
2023-10-19 23:55               ` Alexey Kardashevskiy
2023-10-20  0:13                 ` Sean Christopherson
2023-10-20  0:43                   ` Alexey Kardashevskiy
2023-10-20 15:13                     ` Sean Christopherson
2023-10-20 18:37             ` Tom Lendacky
2023-11-10 22:07           ` Michael Roth
2023-11-10 22:47             ` Sean Christopherson
2023-11-16  5:31               ` Dionna Amalie Glaze
2023-12-05  0:30                 ` Dan Williams
2023-12-05  0:48                   ` Dionna Amalie Glaze
2023-12-05 20:06                     ` Dan Williams
2023-12-05 22:04                       ` Dionna Amalie Glaze
2023-12-05 23:11                         ` Dan Williams
2023-12-06  0:43                           ` Dionna Amalie Glaze
2023-10-16 13:28 ` [PATCH v10 49/50] crypto: ccp: Add debug support for decrypting pages Michael Roth
2023-10-16 13:28 ` [PATCH v10 50/50] crypto: ccp: Add panic notifier for SEV/SNP firmware shutdown on kdump Michael Roth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231016132819.1002933-48-michael.roth@amd.com \
    --to=michael.roth@amd.com \
    --cc=aik@amd.com \
    --cc=ak@linux.intel.com \
    --cc=alpergun@google.com \
    --cc=ardb@kernel.org \
    --cc=ashish.kalra@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dionnaglaze@google.com \
    --cc=dovmurik@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jarkko@kernel.org \
    --cc=jmattson@google.com \
    --cc=jroedel@suse.de \
    --cc=kirill@shutemov.name \
    --cc=kvm@vger.kernel.org \
    --cc=liam.merwick@oracle.com \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=marcorr@google.com \
    --cc=mingo@redhat.com \
    --cc=nikunj.dadhania@amd.com \
    --cc=pankaj.gupta@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pgonda@google.com \
    --cc=rientjes@google.com \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=seanjc@google.com \
    --cc=slp@redhat.com \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=tobin@ibm.com \
    --cc=tony.luck@intel.com \
    --cc=vbabka@suse.cz \
    --cc=vkuznets@redhat.com \
    --cc=x86@kernel.org \
    --cc=zhi.a.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).