diff --git a/sys/net/iflib.c b/sys/net/iflib.c index 01da882f0d1..d1098d98ff3 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -4473,9 +4473,14 @@ iflib_vlan_register(void *arg, if_t ifp, uint16_t vtag) { if_ctx_t ctx = if_getsoftc(ifp); - if ((void *)ctx != arg) + device_printf(ctx->ifc_dev,"iflib_vlan_register: start\n"); + + if ((void *)ifp != arg) { + device_printf(ctx->ifc_dev,"device mismatch: %p, %p\n", + ifp, arg); return; - + } + if ((vtag == 0) || (vtag > 4095)) return; @@ -4498,8 +4503,13 @@ iflib_vlan_unregister(void *arg, if_t ifp, uint16_t vtag) { if_ctx_t ctx = if_getsoftc(ifp); - if ((void *)ctx != arg) + device_printf(ctx->ifc_dev,"iflib_vlan_unregister: start\n"); + + if ((void *)ifp != arg) { + device_printf(ctx->ifc_dev,"device mismatch: %p, %p\n", + ifp, arg); return; + } if ((vtag == 0) || (vtag > 4095)) return; @@ -5830,12 +5840,14 @@ iflib_register(if_ctx_t ctx) iflags |= IFF_BROADCAST | IFF_SIMPLEX; if_setflags(ifp, iflags); ctx->ifc_vlan_attach_event = - EVENTHANDLER_REGISTER(vlan_config, iflib_vlan_register, ctx, + EVENTHANDLER_REGISTER(vlan_config, iflib_vlan_register, ifp, EVENTHANDLER_PRI_FIRST); ctx->ifc_vlan_detach_event = - EVENTHANDLER_REGISTER(vlan_unconfig, iflib_vlan_unregister, ctx, + EVENTHANDLER_REGISTER(vlan_unconfig, iflib_vlan_unregister, ifp, EVENTHANDLER_PRI_FIRST); + device_printf(dev,"event hander:vlan_config:ifp:%p\n",ifp); + if ((sctx->isc_flags & IFLIB_DRIVER_MEDIA) == 0) { ctx->ifc_mediap = &ctx->ifc_media; ifmedia_init(ctx->ifc_mediap, IFM_IMASK,