mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
virt: sev-guest: Remove is_vmpck_empty() helper
Remove is_vmpck_empty() which uses a local array allocation to check if the VMPCK is empty and replace it with memchr_inv() to directly determine if the VMPCK is empty without additional memory allocation. [ bp: Massage commit message. ] Suggested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/r/20250106124633.1418972-2-nikunj@amd.com
This commit is contained in:
committed by
Borislav Petkov (AMD)
parent
21fc6178e9
commit
8234177d20
@@ -63,16 +63,6 @@ MODULE_PARM_DESC(vmpck_id, "The VMPCK ID to use when communicating with the PSP.
|
||||
/* Mutex to serialize the shared buffer access and command handling. */
|
||||
static DEFINE_MUTEX(snp_cmd_mutex);
|
||||
|
||||
static bool is_vmpck_empty(struct snp_msg_desc *mdesc)
|
||||
{
|
||||
char zero_key[VMPCK_KEY_LEN] = {0};
|
||||
|
||||
if (mdesc->vmpck)
|
||||
return !memcmp(mdesc->vmpck, zero_key, VMPCK_KEY_LEN);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* If an error is received from the host or AMD Secure Processor (ASP) there
|
||||
* are two options. Either retry the exact same encrypted request or discontinue
|
||||
@@ -335,7 +325,7 @@ static int snp_send_guest_request(struct snp_msg_desc *mdesc, struct snp_guest_r
|
||||
guard(mutex)(&snp_cmd_mutex);
|
||||
|
||||
/* Check if the VMPCK is not empty */
|
||||
if (is_vmpck_empty(mdesc)) {
|
||||
if (!mdesc->vmpck || !memchr_inv(mdesc->vmpck, 0, VMPCK_KEY_LEN)) {
|
||||
pr_err_ratelimited("VMPCK is disabled\n");
|
||||
return -ENOTTY;
|
||||
}
|
||||
@@ -1024,7 +1014,7 @@ static int __init sev_guest_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* Verify that VMPCK is not zero. */
|
||||
if (is_vmpck_empty(mdesc)) {
|
||||
if (!memchr_inv(mdesc->vmpck, 0, VMPCK_KEY_LEN)) {
|
||||
dev_err(dev, "Empty VMPCK%d communication key\n", vmpck_id);
|
||||
goto e_unmap;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user