aboutsummaryrefslogtreecommitdiff
path: root/sys/net/iflib.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/iflib.c')
-rw-r--r--sys/net/iflib.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/net/iflib.c b/sys/net/iflib.c
index 3fcab699f9e0..88027a6dc283 100644
--- a/sys/net/iflib.c
+++ b/sys/net/iflib.c
@@ -5057,6 +5057,7 @@ iflib_device_register(device_t dev, void *sc, if_shared_ctx_t sctx, if_ctx_t *ct
ifp = ctx->ifc_ifp;
iflib_reset_qvalues(ctx);
+ IFNET_WLOCK();
CTX_LOCK(ctx);
if ((err = IFDI_ATTACH_PRE(ctx)) != 0) {
device_printf(dev, "IFDI_ATTACH_PRE failed %d\n", err);
@@ -5250,6 +5251,7 @@ iflib_device_register(device_t dev, void *sc, if_shared_ctx_t sctx, if_ctx_t *ct
iflib_add_pfil(ctx);
ctx->ifc_flags |= IFC_INIT_DONE;
CTX_UNLOCK(ctx);
+ IFNET_WUNLOCK();
return (0);
@@ -5265,6 +5267,7 @@ fail_intr_free:
iflib_free_intr_mem(ctx);
fail_unlock:
CTX_UNLOCK(ctx);
+ IFNET_WUNLOCK();
iflib_deregister(ctx);
fail_ctx_free:
device_set_softc(ctx->ifc_dev, NULL);