summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/virtio/virtio_main.c
diff options
context:
space:
mode:
authorAndy Fiddaman <omnios@citrus-it.co.uk>2019-08-29 21:50:54 +0000
committerAndy Fiddaman <omnios@citrus-it.co.uk>2019-08-30 23:31:03 +0000
commit89cb8ffb5df88f95defaae8f0f4f0c67ccd9d17e (patch)
tree768d8860697a4d66c7401ab8c3229b3ed65f3284 /usr/src/uts/common/io/virtio/virtio_main.c
parent9e59ac1c9bffd2ba0d7192da3c5f7d1c3444991a (diff)
downloadillumos-joyent-89cb8ffb5df88f95defaae8f0f4f0c67ccd9d17e.tar.gz
11643 panic when detaching vioif
Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Rich Lowe <richlowe@richlowe.net> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/uts/common/io/virtio/virtio_main.c')
-rw-r--r--usr/src/uts/common/io/virtio/virtio_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/src/uts/common/io/virtio/virtio_main.c b/usr/src/uts/common/io/virtio/virtio_main.c
index be92dacfba..cb81142a53 100644
--- a/usr/src/uts/common/io/virtio/virtio_main.c
+++ b/usr/src/uts/common/io/virtio/virtio_main.c
@@ -81,6 +81,7 @@ static int virtio_interrupts_setup(virtio_t *, int);
static void virtio_interrupts_teardown(virtio_t *);
static void virtio_interrupts_disable_locked(virtio_t *);
static void virtio_queue_free(virtio_queue_t *);
+static void virtio_device_reset_locked(virtio_t *);
/*
* We use the same device access attributes for BAR mapping and access to the
@@ -194,7 +195,7 @@ virtio_fini(virtio_t *vio, boolean_t failed)
*/
virtio_set_status(vio, VIRTIO_STATUS_FAILED);
} else {
- virtio_device_reset(vio);
+ virtio_device_reset_locked(vio);
}
/*
@@ -215,6 +216,7 @@ virtio_fini(virtio_t *vio, boolean_t failed)
/*
* Ensure we have torn down everything we set up.
*/
+ vio->vio_initlevel &= ~VIRTIO_INITLEVEL_SHUTDOWN;
VERIFY0(vio->vio_initlevel);
mutex_exit(&vio->vio_mutex);