DF-1604 / fix.diff
diff --git a/sys/dev/virtual/virtio/block/virtio_blk.c b/sys/dev/virtual/virtio/block/virtio_blk.c --- a/sys/dev/virtual/virtio/block/virtio_blk.c +++ b/sys/dev/virtual/virtio/block/virtio_blk.c @@ -718,7 +718,8 @@ * If the virtio device is reporting a legacy cylinder count, * recalculate ncylinders based on the media size */ - if (info.d_ncylinders == 16383) { + if (info.d_ncylinders == 16383 && + info.d_nheads != 0 && info.d_secpertrack != 0) { info.d_ncylinders = info.d_media_blocks / (info.d_nheads * info.d_secpertrack); device_printf(sc->vtblk_dev, |