View | Details | Raw Unified | Return to bug 195859
Collapse All | Expand All

(-)sys/net/if_bridge.c (-2 / +9 lines)
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);

Return to bug 195859