On Mon, Nov 11, 2024 at 02:16:00PM +0530, Nikunj A. Dadhania wrote: > That was the reason I had not implemented "free" counterpart. Then let's simplify this too because it is kinda silly right now: --- diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index a72400704421..efddccf4b2c6 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -96,7 +96,7 @@ static u64 sev_hv_features __ro_after_init; /* Secrets page physical address from the CC blob */ static u64 secrets_pa __ro_after_init; -static struct snp_msg_desc *snp_mdesc; +static struct snp_msg_desc snp_mdesc; /* Secure TSC values read using TSC_INFO SNP Guest request */ static u64 snp_tsc_scale __ro_after_init; @@ -2749,19 +2749,13 @@ EXPORT_SYMBOL_GPL(snp_msg_init); struct snp_msg_desc *snp_msg_alloc(void) { - struct snp_msg_desc *mdesc; + struct snp_msg_desc *mdesc = &snp_mdesc; BUILD_BUG_ON(sizeof(struct snp_guest_msg) > PAGE_SIZE); - if (snp_mdesc) - return snp_mdesc; - - mdesc = kzalloc(sizeof(struct snp_msg_desc), GFP_KERNEL); - if (!mdesc) - return ERR_PTR(-ENOMEM); + memset(mdesc, 0, sizeof(struct snp_msg_desc)); - mdesc->secrets = (__force struct snp_secrets_page *)ioremap_encrypted(secrets_pa, - PAGE_SIZE); + mdesc->secrets = (__force struct snp_secrets_page *)ioremap_encrypted(secrets_pa, PAGE_SIZE); if (!mdesc->secrets) return ERR_PTR(-ENODEV); @@ -2783,8 +2777,6 @@ struct snp_msg_desc *snp_msg_alloc(void) mdesc->input.resp_gpa = __pa(mdesc->response); mdesc->input.data_gpa = __pa(mdesc->certs_data); - snp_mdesc = mdesc; - return mdesc; e_free_response: -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette