Commit dbf07b54 authored by Borislav Petkov (AMD)'s avatar Borislav Petkov (AMD)
Browse files

crypto: ccp: Get rid of __sev_platform_init_locked()'s local function pointer



Add a wrapper instead.

No functional changes.

Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20230307192449.24732-9-bp@alien8.de
parent efb339a8
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -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)