diff options
author | Andy Fiddaman <omnios@citrus-it.co.uk> | 2019-08-29 21:50:54 +0000 |
---|---|---|
committer | Andy Fiddaman <omnios@citrus-it.co.uk> | 2019-08-30 23:31:03 +0000 |
commit | 89cb8ffb5df88f95defaae8f0f4f0c67ccd9d17e (patch) | |
tree | 768d8860697a4d66c7401ab8c3229b3ed65f3284 /usr/src/uts/common/io/virtio/virtio_main.c | |
parent | 9e59ac1c9bffd2ba0d7192da3c5f7d1c3444991a (diff) | |
download | illumos-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.c | 4 |
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); |