Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jul 1999 11:35:55 -0700 (PDT)
From:      Matthew Jacob <mjacob@feral.com>
To:        Nick Hibma <hibma@skylink.it>
Cc:        FreeBSD CURRENT Mailing list <current@FreeBSD.ORG>, justin@FreeBSD.ORG
Subject:   Re: panic in dadone, PR 12041
Message-ID:  <Pine.BSF.4.05.9907031133310.5047-100000@semuta.feral.com>
In-Reply-To: <Pine.BSF.3.96.990703091751.7798A-200000@heidi.plazza.it>

next in thread | previous in thread | raw e-mail | index | archive | help

I'll fix it, but not this way. It's time to prepare for handling
larger than terabyte disks that still have a 512 byte sector size as
well. The actual calculation should be:

(((u_int64_t) dp->secsize) * ((u_int64_t) dp->sectors)) >> 20LL and the
format statement should be %qdMB for the Megabyte size.

On Sat, 3 Jul 1999, Nick Hibma wrote:

> 
> PR 12041 complains about the fact that the system panics with a divide
> by zero if a zip drive is connected with a medium in it. I've not been
> able to reproduce the problem, but remember having similar problems
> when implementing the umass driver for USB. The problem is caused by the
> following line in scsi_da.c:1326 (3.2-STABLE but applies to CURRENT as
> well):
> 
>    snprintf(announce_buf, sizeof(announce_buf),
>             "%ldMB (%d %d byte sectors: %dH %dS/T%dC)",
>             dp->sectors / ((1024L * 1024L) / dp->secsize),
>             dp->sectors, dp->secsize, dp->heads,
>             dp->secs_per_track, dp->cylinders);
> 
> secsize is 0 in some cases (I think it happens when an INQUIRY fails
> without being detected as having failed).
> 
> In any case a/(b/c) = a*c/b, but without any divl (with b sometimes 0
> and c == 2^20).
> 
> Patch attached.
> 
> Nick
> 
> -- 
> e-Mail: hibma@skylink.it
> 
> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9907031133310.5047-100000>