diff options
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/iflib.c | 3 |
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); |