[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/pvh: zero VGA information
commit cccb7878f386fb8691b7e28957a562a66d9b875f Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> AuthorDate: Mon Apr 22 15:13:30 2024 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Apr 22 15:13:30 2024 +0200 x86/pvh: zero VGA information PVH guests skip real mode VGA detection, and never have a VGA available, hence the default VGA selection is not applicable, and at worse can cause confusion when parsing Xen boot log. Zero the boot_vid_info structure when Xen is booted from the PVH entry point. This fixes Xen incorrectly reporting: (XEN) Video information: (XEN) VGA is text mode 80x25, font 8x16 When booted as a PVH guest. Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/boot/video.h | 2 ++ xen/arch/x86/guest/xen/pvh-boot.c | 9 +++++++++ xen/arch/x86/setup.c | 1 - 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/boot/video.h b/xen/arch/x86/boot/video.h index 6a7775d242..1203515f9e 100644 --- a/xen/arch/x86/boot/video.h +++ b/xen/arch/x86/boot/video.h @@ -67,6 +67,8 @@ struct boot_video_info { } vesapm; uint16_t vesa_attrib; /* 0x28 */ }; + +extern struct boot_video_info boot_vid_info; #endif /* __ASSEMBLY__ */ #endif /* __BOOT_VIDEO_H__ */ diff --git a/xen/arch/x86/guest/xen/pvh-boot.c b/xen/arch/x86/guest/xen/pvh-boot.c index 9cbe87b61b..cc57ab2cbc 100644 --- a/xen/arch/x86/guest/xen/pvh-boot.c +++ b/xen/arch/x86/guest/xen/pvh-boot.c @@ -15,6 +15,10 @@ #include <public/arch-x86/hvm/start_info.h> +#ifdef CONFIG_VIDEO +# include "../../boot/video.h" +#endif + /* Initialised in head.S, before .bss is zeroed. */ bool __initdata pvh_boot; uint32_t __initdata pvh_start_info_pa; @@ -95,6 +99,11 @@ void __init pvh_init(multiboot_info_t **mbi, module_t **mod) ASSERT(xen_guest); get_memory_map(); + +#ifdef CONFIG_VIDEO + /* No VGA available when booted from the PVH entry point. */ + memset(&bootsym(boot_vid_info), 0, sizeof(boot_vid_info)); +#endif } void __init pvh_print_info(void) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 86cd8b9997..449a347653 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -646,7 +646,6 @@ static struct e820map __initdata boot_e820; #ifdef CONFIG_VIDEO # include "boot/video.h" -extern struct boot_video_info boot_vid_info; #endif static void __init parse_video_info(void) -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |