[syslinux:elflink] syslinux_boot_linux(): revert to text mode unless vga=current

syslinux-bot for H. Peter Anvin hpa at zytor.com
Fri May 18 16:30:02 PDT 2012


Commit-ID:  a965da4a4fa04471c68d0cbdc91deba61362a160
Gitweb:     http://www.syslinux.org/commit/a965da4a4fa04471c68d0cbdc91deba61362a160
Author:     H. Peter Anvin <hpa at zytor.com>
AuthorDate: Fri, 18 May 2012 16:26:53 -0700
Committer:  H. Peter Anvin <hpa at zytor.com>
CommitDate: Fri, 18 May 2012 16:26:53 -0700

syslinux_boot_linux(): revert to text mode unless vga=current

When loading a Linux kernel, revert to text mode before invoking
unless vga=current.

Signed-off-by: H. Peter Anvin <hpa at zytor.com>

---
 com32/lib/syslinux/load_linux.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index 45cd696..e5fd333 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -466,6 +466,17 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size,
     dprintf("Initial movelist:\n");
     syslinux_dump_movelist(fraglist);
 
+    if (video_mode != 0x0f04) {
+	/*
+	 * video_mode is not "current", so if we are in graphics mode we
+	 * need to revert to text mode...
+	 */
+	dprintf("*** Calling vgaclearmode()...\n");
+	vgaclearmode();
+    } else {
+	dprintf("*** vga=current, not calling vgaclearmode()...\n");
+    }
+
     syslinux_shuffle_boot_rm(fraglist, mmap, 0, &regs);
 
 bail:


More information about the Syslinux-commits mailing list