bridge: Fix STP-related panic

After r345180 we need to have the appropriate vnet context set to delete an
rtnode in bridge_rtnode_destroy().
That's usually the case, but not when it's called by the STP code (through
bstp_notify_rtage()).

We have to set the vnet context in bridge_rtable_expire() just as we do in the
other STP callback bridge_state_change().

Reviewed by:	kevans
This commit is contained in:
Kristof Provost 2019-03-15 15:52:36 +00:00
parent fa707ac77f
commit 43d3127ca7
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=345187

View File

@ -3047,6 +3047,7 @@ bridge_rtable_expire(struct ifnet *ifp, int age)
struct bridge_softc *sc = ifp->if_bridge;
struct bridge_rtnode *brt;
CURVNET_SET(ifp->if_vnet);
BRIDGE_LOCK(sc);
/*
@ -3065,6 +3066,7 @@ bridge_rtable_expire(struct ifnet *ifp, int age)
}
}
BRIDGE_UNLOCK(sc);
CURVNET_RESTORE();
}
/*