x86/sev-es: Replace open-coded hlt-loop with sev_es_terminate()
authorPeter Gonda <pgonda@google.com>
Thu, 17 Mar 2022 21:19:13 +0000 (14:19 -0700)
committerBorislav Petkov <bp@suse.de>
Fri, 8 Apr 2022 08:57:35 +0000 (10:57 +0200)
Replace the halt loop in handle_vc_boot_ghcb() with an
sev_es_terminate(). The HLT gives the system no indication the guest is
unhappy. The termination request will signal there was an error during
VC handling during boot.

  [ bp: Update it to pass the reason set too. ]

Signed-off-by: Peter Gonda <pgonda@google.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Joerg Roedel <jroedel@suse.de>
Link: https://lore.kernel.org/r/20220317211913.1397427-1-pgonda@google.com
arch/x86/kernel/sev.c

index ace43e1..f01f455 100644 (file)
@@ -1982,8 +1982,7 @@ bool __init handle_vc_boot_ghcb(struct pt_regs *regs)
 fail:
        show_regs(regs);
 
-       while (true)
-               halt();
+       sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SEV_ES_GEN_REQ);
 }
 
 /*