On 4/4/24 4:11 PM, Ashish Kalra wrote: > From: Ashish Kalra <ashish.kalra@xxxxxxx> > > Accessing guest video memory/RAM during kernel decompressor > causes guest termination as boot stage2 #VC handler for > SEV-ES/SNP systems does not support MMIO handling. > > This issue is observed with SEV-ES/SNP guest kexec as > kexec -c adds screen_info to the boot parameters > passed to the kexec kernel, which causes console output to > be dumped to both video and serial. > > As the decompressor output gets cleared really fast, it is > preferable to get the console output only on serial, hence, > skip accessing video RAM during decompressor stage to > prevent guest termination. > > Serial console output during decompressor stage works as > boot stage2 #VC handler already supports handling port I/O. > > Suggested-by: Thomas Lendacy <thomas.lendacky@xxxxxxx> > Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx> > --- Looks good to me. Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > arch/x86/boot/compressed/misc.c | 6 ++++-- > arch/x86/boot/compressed/misc.h | 1 + > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c > index b70e4a21c15f..47b4db200e1f 100644 > --- a/arch/x86/boot/compressed/misc.c > +++ b/arch/x86/boot/compressed/misc.c > @@ -427,8 +427,10 @@ asmlinkage __visible void *extract_kernel(void *rmode, unsigned char *output) > vidport = 0x3d4; > } > > - lines = boot_params_ptr->screen_info.orig_video_lines; > - cols = boot_params_ptr->screen_info.orig_video_cols; > + if (!sev_es_enabled()) { > + lines = boot_params_ptr->screen_info.orig_video_lines; > + cols = boot_params_ptr->screen_info.orig_video_cols; > + } > > init_default_io_ops(); > > diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h > index b353a7be380c..3c12ca987554 100644 > --- a/arch/x86/boot/compressed/misc.h > +++ b/arch/x86/boot/compressed/misc.h > @@ -37,6 +37,7 @@ > #include <asm/desc_defs.h> > > #include "tdx.h" > +#include "sev.h" > > #define BOOT_CTYPE_H > #include <linux/acpi.h> -- Sathyanarayanan Kuppuswamy Linux Kernel Developer _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec