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: [EMAIL PROTECTED]
>
>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message