static int loop_clone_destroy(struct ifnet *ifp) { if (ifp == lo0ifp) return (EPERM); #ifdef MBUFTRACE #ifdef T2EX if ( ifp->if_mowner != NULL ) { #endif MOWNER_DETACH(ifp->if_mowner); free(ifp->if_mowner, M_DEVBUF); #ifdef T2EX } #endif #endif #if NBPFILTER > 0 bpfdetach(ifp); #endif if_detach(ifp); free(ifp, M_DEVBUF); return (0); }
static int loop_clone_destroy(struct ifnet *ifp) { if (ifp == lo0ifp) return (EPERM); #ifdef MBUFTRACE MOWNER_DETACH(ifp->if_mowner); free(ifp->if_mowner, M_DEVBUF); #endif bpf_detach(ifp); if_detach(ifp); if_free(ifp); return (0); }
static int loop_clone_destroy_lo0(void) { struct ifnet *ifp = lo0ifp; #ifdef MBUFTRACE if ( ifp->if_mowner != NULL ) { MOWNER_DETACH(ifp->if_mowner); free(ifp->if_mowner, M_DEVBUF); } #endif #if NBPFILTER > 0 bpfdetach(ifp); #endif if_detach(ifp); free(ifp, M_DEVBUF); return (0); }