Re: [PATCH] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit(ping)

From: Alon Bar-Lev
Date: Mon Aug 28 2006 - 02:01:21 EST


H. Peter Anvin wrote:
Found the references. This seems to imply that EDD overwrites the area used by LILO 22.6.1. LILO 22.6.1 uses the new boot protocol, with the full pointer, and seems to obey the spec as far as I can read the code. I'm going to try to run it in simulation and observe the failure that way.

However, something is still seriously out of joint. The EDD data actually overlays the setup code, not the bootsect code, and thus there "shouldn't" be any way that this could interfere. My best guess at this time is that either the EDD code or LILO uses memory it's not supposed to use, and the simulation should hopefully reveal that.

Sorry if I seem snarky on this, but if we can't get to the bottom of this we can't ever fix it.

-hpa


I think I've found one problem... But I it should not be the major one.
The EDD code scans the command-line as fixed string.
What about something like the following?

Best Regards,
Alon Bar-Lev.

diff -urNp linux-2.6.18-rc4-mm2/arch/i386/boot/edd.S linux-2.6.18-rc4-mm2.new/arch/i386/boot/edd.S
--- linux-2.6.18-rc4-mm2/arch/i386/boot/edd.S 2006-06-18 04:49:35.000000000 +0300
+++ linux-2.6.18-rc4-mm2.new/arch/i386/boot/edd.S 2006-08-28 08:55:01.000000000 +0300
@@ -29,6 +29,8 @@
movl $(COMMAND_LINE_SIZE-7), %ecx
# loop through kernel command line one byte at a time
cl_loop:
+ cmpb $0,(%si)
+ jz done_cl
cmpl $EDD_CL_EQUALS, (%si)
jz found_edd_equals
incl %esi
-
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/