diff options
author | Borislav Petkov (AMD) <bp@alien8.de> | 2023-03-07 20:24:46 +0100 |
---|---|---|
committer | Borislav Petkov (AMD) <bp@alien8.de> | 2023-03-21 12:08:07 +0100 |
commit | dbf07b544ca12c0ab8bd3fc1ea3509ea713a8bf5 (patch) | |
tree | 43f86b1a49572c192556bdea0054dfd5ac9f2014 /drivers/crypto/ccp | |
parent | efb339a83368ab25de1a18c0fdff85e01c13a1ea (diff) | |
download | linux-dbf07b544ca12c0ab8bd3fc1ea3509ea713a8bf5.tar.gz linux-dbf07b544ca12c0ab8bd3fc1ea3509ea713a8bf5.tar.bz2 linux-dbf07b544ca12c0ab8bd3fc1ea3509ea713a8bf5.zip |
crypto: ccp: Get rid of __sev_platform_init_locked()'s local function pointer
Add a wrapper instead.
No functional changes.
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20230307192449.24732-9-bp@alien8.de
Diffstat (limited to 'drivers/crypto/ccp')
-rw-r--r-- | drivers/crypto/ccp/sev-dev.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c index 823c67a43c38..e346c00b132a 100644 --- a/drivers/crypto/ccp/sev-dev.c +++ b/drivers/crypto/ccp/sev-dev.c @@ -442,11 +442,18 @@ static int __sev_init_ex_locked(int *error) return __sev_do_cmd_locked(SEV_CMD_INIT_EX, &data, error); } +static inline int __sev_do_init_locked(int *psp_ret) +{ + if (sev_init_ex_buffer) + return __sev_init_ex_locked(psp_ret); + else + return __sev_init_locked(psp_ret); +} + static int __sev_platform_init_locked(int *error) { int rc = 0, psp_ret = SEV_RET_NO_FW_CALL; struct psp_device *psp = psp_master; - int (*init_function)(int *error); struct sev_device *sev; if (!psp || !psp->sev_data) @@ -458,15 +465,12 @@ static int __sev_platform_init_locked(int *error) return 0; if (sev_init_ex_buffer) { - init_function = __sev_init_ex_locked; rc = sev_read_init_ex_file(); if (rc) return rc; - } else { - init_function = __sev_init_locked; } - rc = init_function(&psp_ret); + rc = __sev_do_init_locked(&psp_ret); if (rc && psp_ret == SEV_RET_SECURE_DATA_INVALID) { /* * Initialization command returned an integrity check failure @@ -477,7 +481,7 @@ static int __sev_platform_init_locked(int *error) */ dev_err(sev->dev, "SEV: retrying INIT command because of SECURE_DATA_INVALID error. Retrying once to reset PSP SEV state."); - rc = init_function(&psp_ret); + rc = __sev_do_init_locked(&psp_ret); } if (error) |