Commit d3529bb7 authored by Joerg Roedel's avatar Joerg Roedel Committed by Borislav Petkov
Browse files

x86/sev-es: Wire up existing #VC exit-code handlers



Re-use the handlers for CPUID- and IOIO-caused #VC exceptions in the
early boot handler.

Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200907131613.12703-48-joro@8bytes.org
parent 0786138c
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -325,8 +325,7 @@ static enum es_result vc_ioio_exitinfo(struct es_em_ctxt *ctxt, u64 *exitinfo)
	return ES_OK;
}

static enum es_result __maybe_unused
vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt)
static enum es_result vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt)
{
	struct pt_regs *regs = ctxt->regs;
	u64 exit_info_1, exit_info_2;
@@ -434,7 +433,7 @@ vc_handle_ioio(struct ghcb *ghcb, struct es_em_ctxt *ctxt)
	return ret;
}

static enum es_result __maybe_unused vc_handle_cpuid(struct ghcb *ghcb,
static enum es_result vc_handle_cpuid(struct ghcb *ghcb,
				      struct es_em_ctxt *ctxt)
{
	struct pt_regs *regs = ctxt->regs;
+6 −0
Original line number Diff line number Diff line
@@ -441,6 +441,12 @@ static enum es_result vc_handle_exitcode(struct es_em_ctxt *ctxt,
	enum es_result result;

	switch (exit_code) {
	case SVM_EXIT_CPUID:
		result = vc_handle_cpuid(ghcb, ctxt);
		break;
	case SVM_EXIT_IOIO:
		result = vc_handle_ioio(ghcb, ctxt);
		break;
	default:
		/*
		 * Unexpected #VC exception