Lines 228-234
Link Here
|
228 |
|
228 |
|
229 |
static VNET_DEFINE(struct mtx, bridge_list_mtx); |
229 |
static VNET_DEFINE(struct mtx, bridge_list_mtx); |
230 |
#define V_bridge_list_mtx VNET(bridge_list_mtx) |
230 |
#define V_bridge_list_mtx VNET(bridge_list_mtx) |
231 |
eventhandler_tag bridge_detach_cookie = NULL; |
231 |
static eventhandler_tag bridge_detach_cookie; |
232 |
|
232 |
|
233 |
int bridge_rtable_prune_period = BRIDGE_RTABLE_PRUNE_PERIOD; |
233 |
int bridge_rtable_prune_period = BRIDGE_RTABLE_PRUNE_PERIOD; |
234 |
|
234 |
|
Lines 538-543
Link Here
|
538 |
{ |
538 |
{ |
539 |
|
539 |
|
540 |
if_clone_detach(V_bridge_cloner); |
540 |
if_clone_detach(V_bridge_cloner); |
|
|
541 |
V_bridge_cloner = NULL; |
541 |
BRIDGE_LIST_LOCK_DESTROY(); |
542 |
BRIDGE_LIST_LOCK_DESTROY(); |
542 |
} |
543 |
} |
543 |
VNET_SYSUNINIT(vnet_bridge_uninit, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY, |
544 |
VNET_SYSUNINIT(vnet_bridge_uninit, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY, |
Lines 1797-1803
Link Here
|
1797 |
|
1798 |
|
1798 |
if (ifp->if_flags & IFF_RENAMING) |
1799 |
if (ifp->if_flags & IFF_RENAMING) |
1799 |
return; |
1800 |
return; |
1800 |
|
1801 |
if (V_bridge_cloner == NULL) { |
|
|
1802 |
/* |
1803 |
* This detach handler can be called after |
1804 |
* vnet_bridge_uninit(). Just return in that case. |
1805 |
*/ |
1806 |
return; |
1807 |
} |
1801 |
/* Check if the interface is a bridge member */ |
1808 |
/* Check if the interface is a bridge member */ |
1802 |
if (sc != NULL) { |
1809 |
if (sc != NULL) { |
1803 |
BRIDGE_LOCK(sc); |
1810 |
BRIDGE_LOCK(sc); |