All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alon Bar-Lev <alon.barlev@gmail.com>
To: unlisted-recipients:; (no To-header on input)
Cc: "H. Peter Anvin" <hpa@zytor.com>, Andi Kleen <ak@suse.de>,
	Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, johninsd@san.rr.com,
	Matt_Domsch@dell.com
Subject: Re: [PATCH] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit (ping)
Date: Mon, 28 Aug 2006 09:41:47 +0300	[thread overview]
Message-ID: <44F2902B.5050304@gmail.com> (raw)
In-Reply-To: <44F286E8.1000100@gmail.com>

Alon Bar-Lev wrote:
> 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
> 

Better patch.
I've noticed that this code sets esi but then reference using si... So fixed to
use esi (It worked so far since we are in low area... But I think using the same
register type is cleaner...)

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 09:34:39.000000000 +0300
@@ -29,7 +29,9 @@
         movl    $(COMMAND_LINE_SIZE-7), %ecx
  # loop through kernel command line one byte at a time
  cl_loop:
-       cmpl    $EDD_CL_EQUALS, (%si)
+       cmpb    $0,(%esi)
+       jz      done_cl
+       cmpl    $EDD_CL_EQUALS, (%esi)
         jz      found_edd_equals
         incl    %esi
         loop    cl_loop
@@ -37,9 +39,9 @@ cl_loop:
  found_edd_equals:
  # only looking at first two characters after equals
         addl    $4, %esi
-       cmpw    $EDD_CL_OFF, (%si)      # edd=of
+       cmpw    $EDD_CL_OFF, (%esi)     # edd=of
         jz      do_edd_off
-       cmpw    $EDD_CL_SKIP, (%si)     # edd=sk
+       cmpw    $EDD_CL_SKIP, (%esi)    # edd=sk
         jz      do_edd_skipmbr
         jmp     done_cl
  do_edd_skipmbr:

  reply	other threads:[~2006-08-28  6:43 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-05 13:37 [PATCH][TAKE 4] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit Alon Bar-Lev
2006-05-05 14:09 ` H. Peter Anvin
2006-05-05 14:28   ` Alon Bar-Lev
2006-05-05 14:35     ` H. Peter Anvin
2006-05-05 18:10       ` John Coffman
2006-05-05 18:17         ` H. Peter Anvin
2006-05-05 21:48           ` John Coffman
2006-05-05 21:57             ` H. Peter Anvin
2006-05-06  3:57               ` John Coffman
2006-05-06  5:11                 ` H. Peter Anvin
2006-05-06 10:31                   ` Alon Bar-Lev
     [not found]                   ` <44AD583B.5040007@gmail.com>
     [not found]                     ` <44AD5BB4.9090005@zytor.com>
     [not found]                       ` <44AD5D47.8010307@gmail.com>
     [not found]                         ` <44AD5FD8.6010307@zytor.com>
     [not found]                           ` <9e0cf0bf0608031436x19262ab0rb2271b52ce75639d@mail.gmail.com>
     [not found]                             ` <44D278D6.2070106@zytor.com>
     [not found]                               ` <9e0cf0bf0608031542q2da20037h828f4b8f0d01c4d5@mail.gmail.com>
     [not found]                                 ` <44D27F22.4080205@zytor.com>
2006-08-25 23:57                                   ` [PATCH] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit (ping) Alon Bar-Lev
2006-08-27 18:28                                     ` Andi Kleen
2006-08-27 18:50                                       ` H. Peter Anvin
2006-08-27 19:16                                         ` Andi Kleen
2006-08-27 19:32                                           ` H. Peter Anvin
2006-08-27 20:54                                             ` Andi Kleen
2006-08-27 21:39                                               ` H. Peter Anvin
2006-08-28  3:28                                                 ` John Coffman
2006-08-28  6:02                                                 ` Alon Bar-Lev
2006-08-28  6:41                                                   ` Alon Bar-Lev [this message]
2006-08-28  7:31                                                     ` H. Peter Anvin
2006-08-28 12:19                                                       ` Alon Bar-Lev
2006-08-28 18:28                                                         ` H. Peter Anvin
2006-08-28 18:46                                                           ` Matt Domsch
2006-08-28 19:00                                                             ` H. Peter Anvin
2006-08-28 20:12                                                               ` Matt Domsch
2006-08-28 20:29                                                                 ` Alon Bar-Lev
2006-08-28 20:33                                                                 ` H. Peter Anvin
2006-08-28 20:43                                                                 ` H. Peter Anvin
2006-08-30 16:49                                                                   ` Alon Bar-Lev
2006-08-30 16:56                                                                     ` Andi Kleen
2006-08-30 17:06                                                                       ` Alon Bar-Lev
2006-08-30 17:31                                                                         ` Andi Kleen
2006-08-30 17:51                                                                           ` Alon Bar-Lev
2006-08-30 18:59                                                                             ` H. Peter Anvin
2006-08-30 19:06                                                                               ` Andi Kleen
2006-08-30 19:07                                                                                 ` H. Peter Anvin
2006-08-30 19:23                                                                               ` Alon Bar-Lev
2006-08-30 19:33                                                                                 ` H. Peter Anvin
2006-08-30 18:58                                                                         ` H. Peter Anvin
2006-08-28 19:24                                                             ` Alon Bar-Lev
2006-08-28 20:32                                                               ` H. Peter Anvin
2006-08-29  0:13                                                             ` [PATCH] Fix the EDD code misparsing the command line H. Peter Anvin
2006-08-29  1:24                                                               ` Petr Vandrovec
2006-08-29  1:36                                                                 ` H. Peter Anvin
2006-08-29  1:51                                                                 ` [PATCH] Fix the EDD code misparsing the command line (rev 2) H. Peter Anvin
2006-08-27 19:59                                           ` [PATCH] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit (ping) Alon Bar-Lev
2006-05-05 22:02             ` [PATCH][TAKE 4] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit Alon Bar-Lev
     [not found] <6OyEf-3Zm-5@gated-at.bofh.it>
     [not found] ` <6PCwg-3mz-43@gated-at.bofh.it>
     [not found]   ` <6PDBU-5Qb-25@gated-at.bofh.it>
     [not found]     ` <6PDBU-5Qb-23@gated-at.bofh.it>
2006-08-31 17:32       ` [PATCH] THE LINUX/I386 BOOT PROTOCOL - Breaking the 256 limit (ping) Bodo Eggert
2006-08-31 17:40         ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44F2902B.5050304@gmail.com \
    --to=alon.barlev@gmail.com \
    --cc=Matt_Domsch@dell.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=hpa@zytor.com \
    --cc=johninsd@san.rr.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.