From 71351b98b9be6a867aa00276d67716c0728cfff7 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 23 Aug 2007 09:28:42 -0700 Subject: [PATCH] [x86 setup] Make sure AH=00h when setting a video mode Passing a u8 into a register doesn't mean gcc will zero-extend it. Also, don't depend on thhe register not to change. Per bug report from Saul Tamari. Signed-off-by: H. Peter Anvin --- arch/i386/boot/video-vga.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/i386/boot/video-vga.c b/arch/i386/boot/video-vga.c index d660e608cd..aef02f9ec0 100644 --- a/arch/i386/boot/video-vga.c +++ b/arch/i386/boot/video-vga.c @@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void) mode = 3; /* Set the mode */ + ax = mode; asm volatile(INT10 - : : "a" (mode) - : "ebx", "ecx", "edx", "esi", "edi"); + : "+a" (ax) + : : "ebx", "ecx", "edx", "esi", "edi"); do_restore = 1; return mode; } -- 2.39.5