mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-17 17:38:37 +08:00
Update to FreeBSD head 2018-06-01
Git mirror commit fb63610a69b0eb7f69a201ba05c4c1a7a2739cf9. Update #3472.
This commit is contained in:
@@ -74,8 +74,8 @@
|
||||
*
|
||||
* - Currently only supports Ethernet-like interfaces (Ethernet,
|
||||
* 802.11, VLANs on Ethernet, etc.) Figure out a nice way
|
||||
* to bridge other types of interfaces (FDDI-FDDI, and maybe
|
||||
* consider heterogeneous bridges).
|
||||
* to bridge other types of interfaces (maybe consider
|
||||
* heterogeneous bridges).
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
@@ -342,7 +342,6 @@ static int bridge_fragment(struct ifnet *, struct mbuf **mp,
|
||||
static void bridge_linkstate(struct ifnet *ifp);
|
||||
static void bridge_linkcheck(struct bridge_softc *sc);
|
||||
|
||||
extern void (*bridge_linkstate_p)(struct ifnet *ifp);
|
||||
|
||||
/* The default bridge vlan is 1 (IEEE 802.1Q-2003 Table 9-2) */
|
||||
#define VLANTAGOF(_m) \
|
||||
@@ -558,10 +557,7 @@ bridge_modevent(module_t mod, int type, void *data)
|
||||
bridge_rtnode_zone = uma_zcreate("bridge_rtnode",
|
||||
sizeof(struct bridge_rtnode), NULL, NULL, NULL, NULL,
|
||||
UMA_ALIGN_PTR, 0);
|
||||
bridge_input_p = bridge_input;
|
||||
bridge_output_p = bridge_output;
|
||||
bridge_dn_p = bridge_dummynet;
|
||||
bridge_linkstate_p = bridge_linkstate;
|
||||
bridge_detach_cookie = EVENTHANDLER_REGISTER(
|
||||
ifnet_departure_event, bridge_ifdetach, NULL,
|
||||
EVENTHANDLER_PRI_ANY);
|
||||
@@ -570,10 +566,7 @@ bridge_modevent(module_t mod, int type, void *data)
|
||||
EVENTHANDLER_DEREGISTER(ifnet_departure_event,
|
||||
bridge_detach_cookie);
|
||||
uma_zdestroy(bridge_rtnode_zone);
|
||||
bridge_input_p = NULL;
|
||||
bridge_output_p = NULL;
|
||||
bridge_dn_p = NULL;
|
||||
bridge_linkstate_p = NULL;
|
||||
break;
|
||||
default:
|
||||
return (EOPNOTSUPP);
|
||||
@@ -1043,6 +1036,9 @@ bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif,
|
||||
KASSERT(bif->bif_addrcnt == 0,
|
||||
("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt));
|
||||
|
||||
ifs->if_bridge_output = NULL;
|
||||
ifs->if_bridge_input = NULL;
|
||||
ifs->if_bridge_linkstate = NULL;
|
||||
BRIDGE_UNLOCK(sc);
|
||||
if (!gone) {
|
||||
switch (ifs->if_type) {
|
||||
@@ -1200,6 +1196,9 @@ bridge_ioctl_add(struct bridge_softc *sc, void *arg)
|
||||
}
|
||||
|
||||
ifs->if_bridge = sc;
|
||||
ifs->if_bridge_output = bridge_output;
|
||||
ifs->if_bridge_input = bridge_input;
|
||||
ifs->if_bridge_linkstate = bridge_linkstate;
|
||||
bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp);
|
||||
/*
|
||||
* XXX: XLOCK HERE!?!
|
||||
|
Reference in New Issue
Block a user