Re: [PATCH v6 1/2] x86/sev: Make sure IRQs are disabled while GHCB is active

From: Peter Zijlstra
Date: Thu Jun 17 2021 - 11:39:47 EST



On Wed, Jun 16, 2021 at 08:49:12PM +0200, Joerg Roedel wrote:
> @@ -514,7 +523,7 @@ void noinstr __sev_es_nmi_complete(void)
> struct ghcb_state state;
> struct ghcb *ghcb;
>
> - ghcb = sev_es_get_ghcb(&state);
> + ghcb = __sev_get_ghcb(&state);
>
> vc_ghcb_invalidate(ghcb);
> ghcb_set_sw_exit_code(ghcb, SVM_VMGEXIT_NMI_COMPLETE);
> @@ -524,7 +533,7 @@ void noinstr __sev_es_nmi_complete(void)
> sev_es_wr_ghcb_msr(__pa_nodebug(ghcb));
> VMGEXIT();
>
> - sev_es_put_ghcb(&state);
> + __sev_put_ghcb(&state);
> }

I'm getting (with all of v6.1 applied):

vmlinux.o: warning: objtool: __sev_es_nmi_complete()+0x1bf: call to panic() leaves .noinstr.text section

$ ./scripts/faddr2line defconfig-build/vmlinux __sev_es_nmi_complete+0x1bf
__sev_es_nmi_complete+0x1bf/0x1d0:
__sev_get_ghcb at arch/x86/kernel/sev.c:223
(inlined by) __sev_es_nmi_complete at arch/x86/kernel/sev.c:519