From a6e7fe0d2a79c122c0cd3ad3500f3f3d6ca231b8 Mon Sep 17 00:00:00 2001 From: mycroft Date: Mon, 16 Jan 1995 21:40:17 +0000 Subject: [PATCH] If the disk reports a block size of 0, assume it really meant 512. --- sys/dev/scsipi/sd.c | 7 +++++-- sys/scsi/sd.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/dev/scsipi/sd.c b/sys/dev/scsipi/sd.c index 3861f857cfc1..cf85d60d231e 100644 --- a/sys/dev/scsipi/sd.c +++ b/sys/dev/scsipi/sd.c @@ -1,4 +1,4 @@ -/* $NetBSD: sd.c,v 1.52 1995/01/13 10:51:18 mycroft Exp $ */ +/* $NetBSD: sd.c,v 1.53 1995/01/16 21:40:17 mycroft Exp $ */ /* * Copyright (c) 1994 Charles Hannum. All rights reserved. @@ -811,12 +811,15 @@ sd_get_parms(sd, flags) _3btol(&scsi_sense.pages.rigid_geometry.ncyl_2); dp->blksize = _3btol(scsi_sense.blk_desc.blklen); - if (!dp->heads || !dp->cyls || !dp->blksize) { + if (dp->heads == 0 || dp->cyls == 0) { printf("%s: mode sense (4) returned nonsense", sd->sc_dev.dv_xname); goto fake_it; } + if (dp->blksize == 0) + dp->blksize = 512; + sectors = sd_size(sd, flags); dp->disksize = sectors; sectors /= (dp->heads * dp->cyls); diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index 3861f857cfc1..cf85d60d231e 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $NetBSD: sd.c,v 1.52 1995/01/13 10:51:18 mycroft Exp $ */ +/* $NetBSD: sd.c,v 1.53 1995/01/16 21:40:17 mycroft Exp $ */ /* * Copyright (c) 1994 Charles Hannum. All rights reserved. @@ -811,12 +811,15 @@ sd_get_parms(sd, flags) _3btol(&scsi_sense.pages.rigid_geometry.ncyl_2); dp->blksize = _3btol(scsi_sense.blk_desc.blklen); - if (!dp->heads || !dp->cyls || !dp->blksize) { + if (dp->heads == 0 || dp->cyls == 0) { printf("%s: mode sense (4) returned nonsense", sd->sc_dev.dv_xname); goto fake_it; } + if (dp->blksize == 0) + dp->blksize = 512; + sectors = sd_size(sd, flags); dp->disksize = sectors; sectors /= (dp->heads * dp->cyls);