svn commit: r334343 - head/sys/net
Matt Macy
mmacy at FreeBSD.org
Tue May 29 18:03:44 UTC 2018
Author: mmacy
Date: Tue May 29 18:03:43 2018
New Revision: 334343
URL: https://svnweb.freebsd.org/changeset/base/334343
Log:
iflib: hold context lock across detach for drivers that need it
Modified:
head/sys/net/iflib.c
Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c Tue May 29 17:49:03 2018 (r334342)
+++ head/sys/net/iflib.c Tue May 29 18:03:43 2018 (r334343)
@@ -4815,8 +4815,6 @@ iflib_device_deregister(if_ctx_t ctx)
iflib_netmap_detach(ifp);
ether_ifdetach(ifp);
- /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/
- CTX_LOCK_DESTROY(ctx);
if (ctx->ifc_led_dev != NULL)
led_destroy(ctx->ifc_led_dev);
/* XXX drain any dependent tasks */
@@ -4839,8 +4837,12 @@ iflib_device_deregister(if_ctx_t ctx)
taskqgroup_detach(tqg, &ctx->ifc_admin_task);
if (ctx->ifc_vflr_task.gt_uniq != NULL)
taskqgroup_detach(tqg, &ctx->ifc_vflr_task);
-
+ CTX_LOCK(ctx);
IFDI_DETACH(ctx);
+ CTX_UNLOCK(ctx);
+
+ /* ether_ifdetach calls if_qflush - lock must be destroy afterwards*/
+ CTX_LOCK_DESTROY(ctx);
device_set_softc(ctx->ifc_dev, NULL);
if (ctx->ifc_softc_ctx.isc_intr != IFLIB_INTR_LEGACY) {
pci_release_msi(dev);
More information about the svn-src-head
mailing list