On Fri, Jan 28, 2022 at 11:17:26AM -0600, Brijesh Singh wrote: > diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S > index fd9441f40457..49064a9f96e2 100644 > --- a/arch/x86/boot/compressed/head_64.S > +++ b/arch/x86/boot/compressed/head_64.S > @@ -191,9 +191,8 @@ SYM_FUNC_START(startup_32) > /* > * Mark SEV as active in sev_status so that startup32_check_sev_cbit() > * will do a check. The sev_status memory will be fully initialized That "sev_status memory" formulation is just weird. Pls fix it while you're touching that comment. > +static inline u64 rd_sev_status_msr(void) > +{ > + unsigned long low, high; > + > + asm volatile("rdmsr" : "=a" (low), "=d" (high) : > + "c" (MSR_AMD64_SEV)); > + > + return ((high << 32) | low); > +} Don't you see sev_es_rd_ghcb_msr() in that same file above? Do a common rdmsr() helper and call it where needed, pls, instead of duplicating code. misc.h looks like a good place. Extra bonus points will be given if you unify callers in arch/x86/boot/cpucheck.c too but you don't have to - I can do that ontop. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette