From 89cb8ffb5df88f95defaae8f0f4f0c67ccd9d17e Mon Sep 17 00:00:00 2001 From: Andy Fiddaman Date: Thu, 29 Aug 2019 21:50:54 +0000 Subject: 11643 panic when detaching vioif Reviewed by: Joshua M. Clulow Reviewed by: Toomas Soome Reviewed by: Robert Mustacchi Reviewed by: Rich Lowe Approved by: Dan McDonald --- usr/src/uts/common/io/virtio/virtio_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'usr/src/uts/common/io/virtio/virtio_main.c') 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); -- cgit v1.2.3