[Bug 176748] [libi386] [patch] BTX Loader i386 incorrectly probes EDD, possibly resulting division by zero
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Jul 11 18:18:12 UTC 2014
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176748
John Baldwin <jhb at FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jhb at FreeBSD.org
--- Comment #2 from John Baldwin <jhb at FreeBSD.org> ---
Created attachment 144581
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=144581&action=edit
ignore_zero_size.patch
This patch is not correct. The '48h' function is always required if EDD is
present and is part of the 'Fixed Disk Access' subset as defined in EDD 3.0.
The part of the parameter block conditional on the 'EDD' subset returned by
'48h' is the DPTE pointer (edd_params_seg and edd_params_off in 'struct
edd_params'). The boot code does not use that. In addition, while there is a
flag in the 'flags' field (bit 2) that determines if the geometry returned in
'struct edd_params' is correct, that flag only covers the 'cylinders', 'heads',
and 'sectors_per_track'. The BIOS is always required to populate 'sectors' and
'sector_size' with valid values.
Instead, it seems your BIOS is just broken, but that can be worked around by
ignoring sector counts of 0.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list