Alexandr Nedvedicky [alexandr.nedvedi...@oracle.com] wrote: > diff --git a/sys/net/if_tpmr.c b/sys/net/if_tpmr.c > index f6eb99f347c..4ffa5b18293 100644 > @@ -725,10 +759,9 @@ tpmr_p_dtor(struct tpmr_softc *sc, struct tpmr_port *p, > const char *op) > if_detachhook_del(ifp0, &p->p_dtask); > if_linkstatehook_del(ifp0, &p->p_ltask); > > - smr_barrier(); > + tpmr_p_rele(p); > > - if_put(ifp0); > - free(p, M_DEVBUF, sizeof(*p)); > + smr_barrier(); > > if (ifp->if_link_state != LINK_STATE_DOWN) { > ifp->if_link_state = LINK_STATE_DOWN;
The order is changing here, it was smr_barrier and then the equivalent of tpmr_p_rele, now it is tpmr_p_rele first, smr_barrier second, is that change intentional ? Chris