From 59acc08fd95aefb5430458a08a82b15a4174ed74 Mon Sep 17 00:00:00 2001 From: "Antonino A. Daplas" Date: Thu, 2 Aug 2007 18:16:46 +0800 Subject: [PATCH 1/3] [x86 setup] video setup: Fix VBE DDC reading Add memory operand constraint and write-only modifier to the inline assembly to effect the writing of the EDID block to boot_params.edid_info. Without this, gcc would think the EDID query was dead code and would eliminate it. Signed-off-by: Antonino Daplas Signed-off-by: H. Peter Anvin --- arch/i386/boot/video-vesa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/i386/boot/video-vesa.c b/arch/i386/boot/video-vesa.c index e6aa9eb8d93a4..f1bc71e948cfe 100644 --- a/arch/i386/boot/video-vesa.c +++ b/arch/i386/boot/video-vesa.c @@ -268,7 +268,7 @@ void vesa_store_edid(void) dx = 0; /* EDID block number */ di =(size_t) &boot_params.edid_info; /* (ES:)Pointer to block */ asm(INT10 - : "+a" (ax), "+b" (bx), "+d" (dx) + : "+a" (ax), "+b" (bx), "+d" (dx), "=m" (boot_params.edid_info) : "c" (cx), "D" (di) : "esi"); #endif /* CONFIG_FIRMWARE_EDID */ From 463c9a9f7d1f746c251761cef3af5c808394b7e1 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 2 Aug 2007 13:45:49 -0400 Subject: [PATCH 2/3] [x86 setup] EDD: add missing =m constraint Add a missing =m constraint to the EDD-probing code, that could have caused improper dead-code elimination. Signed-off-by: H. Peter Anvin --- arch/i386/boot/edd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/i386/boot/edd.c b/arch/i386/boot/edd.c index 77d92daf79235..658834d9f92a0 100644 --- a/arch/i386/boot/edd.c +++ b/arch/i386/boot/edd.c @@ -127,7 +127,7 @@ static int get_edd_info(u8 devno, struct edd_info *ei) ax = 0x4800; dx = devno; asm("pushfl; int $0x13; popfl" - : "+a" (ax), "+d" (dx) + : "+a" (ax), "+d" (dx), "=m" (ei->params) : "S" (&ei->params) : "ebx", "ecx", "edi"); From c3887cd7253299cac2a6dc5ea792613a5ba5bf6a Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 2 Aug 2007 13:50:43 -0400 Subject: [PATCH 3/3] [x86 setup] Document grub < 0.93 as broken Grub older than 0.93 are broken when the kernel setup is bigger than 8K. This was fixed in 2002, and 0.93 was the first grub version which fixed this bug. Signed-off-by: H. Peter Anvin --- Documentation/Changes | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/Changes b/Documentation/Changes index 73a8617f18617..cb2b141b1c3e8 100644 --- a/Documentation/Changes +++ b/Documentation/Changes @@ -45,6 +45,7 @@ o nfs-utils 1.0.5 # showmount --version o procps 3.2.0 # ps --version o oprofile 0.9 # oprofiled --version o udev 081 # udevinfo -V +o grub 0.93 # grub --version Kernel compilation ==================