mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-20 22:48:22 +00:00
add another workaround for buggy BIOSes into get_diskinfo.
This commit is contained in:
1 parent
d917526690
commit
e3daf570b2
2 files changed
+13
No files matched your search
@@ -1,3 +1,10 @@
|
|||||||
|
2000-11-11 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
|
* stage2/bios.c (get_diskinfo): If BIOS supports LBA but doesn't
|
||||||
|
return the correct total number of sectors, compute this by
|
||||||
|
C/H/S returned by get_diskinfo_int13_extensions instead of
|
||||||
|
get_diskinfo_standard.
|
||||||
|
|
||||||
2000-11-09 OKUJI Yoshinori <okuji@gnu.org>
|
2000-11-09 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
* stage2/disk_io.c (make_saved_active): Set ERRNUM to
|
* stage2/disk_io.c (make_saved_active): Set ERRNUM to
|
||||||
|
|||||||
@@ -173,7 +173,13 @@ get_diskinfo (int drive, struct geometry *geometry)
|
|||||||
/* FIXME: when the 2TB limit becomes critical, we must
|
/* FIXME: when the 2TB limit becomes critical, we must
|
||||||
change the type of TOTAL_SECTORS to unsigned long
|
change the type of TOTAL_SECTORS to unsigned long
|
||||||
long. */
|
long. */
|
||||||
|
if (drp.total_sectors)
|
||||||
total_sectors = drp.total_sectors & ~0L;
|
total_sectors = drp.total_sectors & ~0L;
|
||||||
|
else
|
||||||
|
/* Some buggy BIOSes doesn't return the total sectors
|
||||||
|
correctly but returns zero. So if it is zero, compute
|
||||||
|
it by C/H/S returned by the LBA BIOS call. */
|
||||||
|
total_sectors = drp.cylinders * drp.heads * drp.sectors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user