DragonFlyBSD Kernel Audit
DF-1707 / fix.diff
← back to finding ↓ download raw
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;