summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_diskmbr.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1995-05-01 00:45:33 +0000
committerphk <phk@FreeBSD.org>1995-05-01 00:45:33 +0000
commit7cb2df48bc34ef37bbb1cf9d3e8ac4b8899a75c9 (patch)
tree20c4ab6b4f0ee549c9609690b17a1e4dc1845f75 /sys/kern/subr_diskmbr.c
parentc36f9f2e7e0f7b761b02416a2b1b29762dfe7ccd (diff)
downloadFreeBSD-src-7cb2df48bc34ef37bbb1cf9d3e8ac4b8899a75c9.zip
FreeBSD-src-7cb2df48bc34ef37bbb1cf9d3e8ac4b8899a75c9.tar.gz
When past cyl 1024 it's ok if CHS is (0xff,0xff,0xff).
It's actually recommended it seems...
Diffstat (limited to 'sys/kern/subr_diskmbr.c')
-rw-r--r--sys/kern/subr_diskmbr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/kern/subr_diskmbr.c b/sys/kern/subr_diskmbr.c
index 313b03c..ed6fd70 100644
--- a/sys/kern/subr_diskmbr.c
+++ b/sys/kern/subr_diskmbr.c
@@ -35,7 +35,7 @@
*
* from: @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
* from: ufs_disksubr.c,v 1.8 1994/06/07 01:21:39 phk Exp $
- * $Id: diskslice_machdep.c,v 1.10 1995/04/20 01:21:51 phk Exp $
+ * $Id: diskslice_machdep.c,v 1.11 1995/04/20 06:01:51 phk Exp $
*/
#include <stddef.h>
@@ -104,7 +104,9 @@ check_part(sname, dp, offset, nsectors, ntracks, mbr_offset )
if (ssector < ssector1
&& ((chs_ssect == nsectors && dp->dp_shd == ntracks - 1
&& chs_scyl == 1023)
- || (ssector1 - ssector) % (1024 * secpercyl) == 0)) {
+ || (ssector1 - ssector) % (1024 * secpercyl) == 0)
+ || (dp->dp_ssect == 255 && dp->dp_shd == 255 &&
+ dp->dp_scyl == 255)) {
TRACE(("%s: C/H/S start %d/%d/%d, start %lu: allow\n",
sname, chs_scyl, dp->dp_shd, chs_ssect, ssector1));
ssector = ssector1;
@@ -120,7 +122,9 @@ check_part(sname, dp, offset, nsectors, ntracks, mbr_offset )
if (esector < esector1
&& ((chs_esect == nsectors && dp->dp_ehd == ntracks - 1
&& chs_ecyl == 1023)
- || (esector1 - esector) % (1024 * secpercyl) == 0)) {
+ || (esector1 - esector) % (1024 * secpercyl) == 0)
+ || (dp->dp_esect == 255 && dp->dp_ehd == 255 &&
+ dp->dp_ecyl == 255)) {
TRACE(("%s: C/H/S end %d/%d/%d, end %lu: allow\n",
sname, chs_ecyl, dp->dp_ehd, chs_esect, esector1));
esector = esector1;
OpenPOWER on IntegriCloud