diff --git a/sys/dev/virtual/virtio/balloon/virtio_balloon.c b/sys/dev/virtual/virtio/balloon/virtio_balloon.c --- a/sys/dev/virtual/virtio/balloon/virtio_balloon.c +++ b/sys/dev/virtual/virtio/balloon/virtio_balloon.c @@ -702,6 +702,9 @@ vtballoon_send_page_frames(struct vtballoon_softc *sc, struct virtqueue *vq, int npages) { + /* If detaching, don't block forever waiting for the host. */ + if (sc->vtballoon_flags & VTBALLOON_FLAG_DETACH) + return; struct sglist sg; struct sglist_seg segs[1]; void *c;