diff options
author | Roger Pau Monné <royger@FreeBSD.org> | 2018-06-26 14:07:11 +0000 |
---|---|---|
committer | Roger Pau Monné <royger@FreeBSD.org> | 2018-06-26 14:07:11 +0000 |
commit | d9b664fd459bee3fe730feec336be9f7f5f51dc2 (patch) | |
tree | d0c59f5c44df989dfdd201b93b93729d13cb9288 | |
parent | 76e944b7a50f4df9bee8130f12437d7679f725bd (diff) |
Notes
-rw-r--r-- | sys/dev/xen/netback/netback.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/xen/netback/netback.c b/sys/dev/xen/netback/netback.c index 0d882a5ab77a..e9b8c1add7e4 100644 --- a/sys/dev/xen/netback/netback.c +++ b/sys/dev/xen/netback/netback.c @@ -662,6 +662,7 @@ xnb_disconnect(struct xnb_softc *xnb) mtx_lock(&xnb->rx_lock); mtx_unlock(&xnb->rx_lock); + mtx_lock(&xnb->sc_lock); /* Free malloc'd softc member variables */ if (xnb->bridge != NULL) { free(xnb->bridge, M_XENSTORE); @@ -689,6 +690,8 @@ xnb_disconnect(struct xnb_softc *xnb) sizeof(struct xnb_ring_config)); xnb->flags &= ~XNBF_RING_CONNECTED; + mtx_unlock(&xnb->sc_lock); + return (0); } @@ -1066,18 +1069,15 @@ xnb_shutdown(struct xnb_softc *xnb) if_free(xnb->xnb_ifp); xnb->xnb_ifp = NULL; } - mtx_lock(&xnb->sc_lock); xnb_disconnect(xnb); - mtx_unlock(&xnb->sc_lock); if (xenbus_get_state(xnb->dev) < XenbusStateClosing) xenbus_set_state(xnb->dev, XenbusStateClosing); mtx_lock(&xnb->sc_lock); xnb->flags &= ~XNBF_IN_SHUTDOWN; - /* Indicate to xnb_detach() that is it safe to proceed. */ wakeup(xnb); |