grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] wrong CHS limit check


From: Robert Millan
Subject: Re: [PATCH] wrong CHS limit check
Date: Sun, 13 Apr 2008 20:40:44 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

Committed.

On Fri, Mar 21, 2008 at 04:14:46PM +0100, Robert Millan wrote:
> 
> This patch fixes (I think) the grub_biosdisk_rw() CHS limit check, which as
> described in http://www.allensmith.net/Storage/HDDlimit/Int13h.htm is slightly
> below LBA-24, not LBA-32 as current code assumes.
> 
> -- 
> Robert Millan
> 
> <GPLv2> I know my rights; I want my phone call!
> <DRM> What use is a phone call… if you are unable to speak?
> (as seen on /.)

> 2008-03-21  Robert Millan  <address@hidden>
> 
>       * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
>       as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
> 
> diff -urp grub2/disk/i386/pc/biosdisk.c tmp/disk/i386/pc/biosdisk.c
> --- grub2/disk/i386/pc/biosdisk.c     2008-02-03 09:27:15.000000000 +0100
> +++ tmp/disk/i386/pc/biosdisk.c       2008-03-21 16:11:20.000000000 +0100
> @@ -237,15 +237,17 @@ grub_biosdisk_rw (int cmd, grub_disk_t d
>      {
>        unsigned coff, hoff, soff;
>        unsigned head;
> -      unsigned real_sector = (unsigned) sector;
>        
> -      /* It is impossible to reach over 2TB with the traditional
> -      CHS access.  */
> -      if (sector > ~0UL)
> +      /* It is impossible to reach over 8064 MiB (a bit less than LBA24) with
> +      the traditional CHS access.  */
> +      if (sector >
> +       1024 /* cylinders */ *
> +       256 /* heads */ *
> +       63 /* spt */)
>       return grub_error (GRUB_ERR_OUT_OF_RANGE, "out of disk");
>  
> -      soff = real_sector % data->sectors + 1;
> -      head = real_sector / data->sectors;
> +      soff = sector % data->sectors + 1;
> +      head = sector / data->sectors;
>        hoff = head % data->heads;
>        coff = head / data->heads;
>  

> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel


-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]