DF-1605 / 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 @@ -524,11 +524,15 @@ { struct vtblk_softc *sc; cdev_t dev = ap->a_head.a_dev; + struct bio *bio = ap->a_bio; sc = dev->si_drv1; - struct bio *bio = ap->a_bio; + if (sc == NULL) { + vtblk_finish_bio(bio, EINVAL); + return EINVAL; + } struct vtblk_queue *q = &sc->vtblk_queues[sc->vtblk_vqmap[mycpuid]]; - if (sc == NULL) { + if (0) { vtblk_finish_bio(bio, EINVAL); return EINVAL; } |