Commit d100016e authored by Alexey Kardashevskiy's avatar Alexey Kardashevskiy Committed by Borislav Petkov (AMD)
Browse files

x86/sev: Allocate request in TSC_INFO_REQ on stack



Allocate a 88 byte request structure on stack and skip needless
kzalloc/kfree.

While at this, correct indent.

No functional change intended.

Signed-off-by: default avatarAlexey Kardashevskiy <aik@amd.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: default avatarDionna Glaze <dionnaglaze@google.com>
Link: https://lore.kernel.org/20250611040842.2667262-3-aik@amd.com
parent 3f83ab6f
Loading
Loading
Loading
Loading
+12 −18
Original line number Diff line number Diff line
@@ -2069,7 +2069,7 @@ static int __init snp_get_tsc_info(void)
	struct snp_tsc_info_resp *tsc_resp;
	struct snp_tsc_info_req *tsc_req;
	struct snp_msg_desc *mdesc;
	struct snp_guest_req *req;
	struct snp_guest_req req = {};
	int rc = -ENOMEM;

	tsc_req = kzalloc(sizeof(*tsc_req), GFP_KERNEL);
@@ -2085,28 +2085,24 @@ static int __init snp_get_tsc_info(void)
	if (!tsc_resp)
		goto e_free_tsc_req;

	req = kzalloc(sizeof(*req), GFP_KERNEL);
	if (!req)
		goto e_free_tsc_resp;

	mdesc = snp_msg_alloc();
	if (IS_ERR_OR_NULL(mdesc))
		goto e_free_req;
		goto e_free_tsc_resp;

	rc = snp_msg_init(mdesc, snp_vmpl);
	if (rc)
		goto e_free_mdesc;

	req->msg_version = MSG_HDR_VER;
	req->msg_type = SNP_MSG_TSC_INFO_REQ;
	req->vmpck_id = snp_vmpl;
	req->req_buf = tsc_req;
	req->req_sz = sizeof(*tsc_req);
	req->resp_buf = (void *)tsc_resp;
	req->resp_sz = sizeof(*tsc_resp) + AUTHTAG_LEN;
	req->exit_code = SVM_VMGEXIT_GUEST_REQUEST;
	req.msg_version = MSG_HDR_VER;
	req.msg_type = SNP_MSG_TSC_INFO_REQ;
	req.vmpck_id = snp_vmpl;
	req.req_buf = tsc_req;
	req.req_sz = sizeof(*tsc_req);
	req.resp_buf = (void *)tsc_resp;
	req.resp_sz = sizeof(*tsc_resp) + AUTHTAG_LEN;
	req.exit_code = SVM_VMGEXIT_GUEST_REQUEST;

	rc = snp_send_guest_request(mdesc, req);
	rc = snp_send_guest_request(mdesc, &req);
	if (rc)
		goto e_request;

@@ -2127,8 +2123,6 @@ static int __init snp_get_tsc_info(void)
	memzero_explicit(tsc_resp, sizeof(*tsc_resp) + AUTHTAG_LEN);
e_free_mdesc:
	snp_msg_free(mdesc);
e_free_req:
	kfree(req);
e_free_tsc_resp:
	kfree(tsc_resp);
e_free_tsc_req: