[GIT PULL] Additional x86 setup fixes

From: H. Peter Anvin
Date: Thu Aug 02 2007 - 16:45:49 EST


Hi Linus,

One more batch of x86setup bug fixes. Of these, one is a manifest bug
(EDID query failure), one is a non-manifest bug, and one is
documentation (Grub < 0.93 buggy.)

Please pull:

git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup.git for-linus

Antonino A. Daplas (1):
[x86 setup] video setup: Fix VBE DDC reading

H. Peter Anvin (2):
[x86 setup] EDD: add missing =m constraint
[x86 setup] Document grub < 0.93 as broken

Documentation/Changes | 1 +
arch/i386/boot/edd.c | 2 +-
arch/i386/boot/video-vesa.c | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)

[Full changelog and diffs follow]

commit c3887cd7253299cac2a6dc5ea792613a5ba5bf6a
Author: H. Peter Anvin <hpa@xxxxxxxxx>
Date: Thu Aug 2 13:50:43 2007 -0400

[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 <hpa@xxxxxxxxx>

diff --git a/Documentation/Changes b/Documentation/Changes
index 73a8617..cb2b141 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
==================

commit 463c9a9f7d1f746c251761cef3af5c808394b7e1
Author: H. Peter Anvin <hpa@xxxxxxxxx>
Date: Thu Aug 2 13:45:49 2007 -0400

[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 <hpa@xxxxxxxxx>

diff --git a/arch/i386/boot/edd.c b/arch/i386/boot/edd.c
index 77d92da..658834d 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");


commit 59acc08fd95aefb5430458a08a82b15a4174ed74
Author: Antonino A. Daplas <adaplas@xxxxxxxxx>
Date: Thu Aug 2 18:16:46 2007 +0800

[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 <adaplas@xxxxxxxxx>
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxx>

diff --git a/arch/i386/boot/video-vesa.c b/arch/i386/boot/video-vesa.c
index e6aa9eb..f1bc71e 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 */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/