diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 3d432068f627ea9407187a00d37113f5baf39b3c..5af18d11b5184805bf7a01c5d94d0759b21c4992 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -615,7 +615,8 @@ static void p9_virtio_remove(struct virtio_device *vdev)
 {
 	struct virtio_chan *chan = vdev->priv;
 
-	BUG_ON(chan->inuse);
+	if (chan->inuse)
+		p9_virtio_close(chan->client);
 	vdev->config->del_vqs(vdev);
 
 	mutex_lock(&virtio_9p_lock);