diff options
author | Nikunj A Dadhania <nikunj@amd.com> | 2024-10-09 14:58:37 +0530 |
---|---|---|
committer | Borislav Petkov (AMD) <bp@alien8.de> | 2024-10-16 18:41:40 +0200 |
commit | 0a895c0d9b73d934de95aa0dd4e631c394bdd25d (patch) | |
tree | e9aa28c65796260cca5f956313256d605871a565 /arch/x86/include/asm | |
parent | ae596615d93dedbdfffbe383f821bea5c5289576 (diff) | |
download | linux-0a895c0d9b73d934de95aa0dd4e631c394bdd25d.tar.gz linux-0a895c0d9b73d934de95aa0dd4e631c394bdd25d.tar.bz2 linux-0a895c0d9b73d934de95aa0dd4e631c394bdd25d.zip |
virt: sev-guest: Carve out SNP message context structure
Currently, the sev-guest driver is the only user of SNP guest messaging.
The snp_guest_dev structure holds all the allocated buffers, secrets page
and VMPCK details. In preparation for adding messaging allocation and
initialization APIs, decouple snp_guest_dev from messaging-related
information by carving out the guest message context
structure(snp_msg_desc).
Incorporate this newly added context into snp_send_guest_request() and all
related functions, replacing the use of the snp_guest_dev.
No functional change.
Signed-off-by: Nikunj A Dadhania <nikunj@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20241009092850.197575-7-nikunj@amd.com
Diffstat (limited to 'arch/x86/include/asm')
-rw-r--r-- | arch/x86/include/asm/sev.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 27fa1c9c3465..2e49c4a9e7fe 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -234,6 +234,27 @@ struct snp_secrets_page { u8 rsvd4[3744]; } __packed; +struct snp_msg_desc { + /* request and response are in unencrypted memory */ + struct snp_guest_msg *request, *response; + + /* + * Avoid information leakage by double-buffering shared messages + * in fields that are in regular encrypted memory. + */ + struct snp_guest_msg secret_request, secret_response; + + struct snp_secrets_page *secrets; + struct snp_req_data input; + + void *certs_data; + + struct aesgcm_ctx *ctx; + + u32 *os_area_msg_seqno; + u8 *vmpck; +}; + /* * The SVSM Calling Area (CA) related structures. */ |