Re: [PATCH 2/6] x86/sev: Fix nonistr violation

From: Randy Dunlap
Date: Wed Jan 06 2021 - 13:00:28 EST


On 1/6/21 6:36 AM, Peter Zijlstra wrote:
> When the compiler fails to inline; we violate nonisntr:
>
> vmlinux.o: warning: objtool: __sev_es_nmi_complete()+0xc7: call to sev_es_wr_ghcb_msr() leaves .noinstr.text section

I am still seeing (a variant of) this one:

vmlinux.o: warning: objtool: __sev_es_nmi_complete()+0xce: call to __wrmsr.constprop.14() leaves .noinstr.text section

> gcc --version
gcc (SUSE Linux) 7.5.0


The other 2 that I reported are gone with all 6 patches applied.

> Fixes: 4ca68e023b11 ("x86/sev-es: Handle NMI State")
> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> arch/x86/kernel/sev-es.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/arch/x86/kernel/sev-es.c
> +++ b/arch/x86/kernel/sev-es.c
> @@ -225,7 +225,7 @@ static inline u64 sev_es_rd_ghcb_msr(voi
> return __rdmsr(MSR_AMD64_SEV_ES_GHCB);
> }
>
> -static inline void sev_es_wr_ghcb_msr(u64 val)
> +static __always_inline void sev_es_wr_ghcb_msr(u64 val)
> {
> u32 low, high;
>
>
>


--
~Randy