diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net/if_bridge.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index e5e88e8..e1f6332 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -2371,8 +2371,7 @@ bridge_rttrim(struct bridge_softc *sc) if (sc->sc_brtcnt <= sc->sc_brtmax) return; - for (brt = LIST_FIRST(&sc->sc_rtlist); brt != NULL; brt = nbrt) { - nbrt = LIST_NEXT(brt, brt_list); + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { bridge_rtnode_destroy(sc, brt); if (sc->sc_brtcnt <= sc->sc_brtmax) @@ -2412,8 +2411,7 @@ bridge_rtage(struct bridge_softc *sc) BRIDGE_LOCK_ASSERT(sc); - for (brt = LIST_FIRST(&sc->sc_rtlist); brt != NULL; brt = nbrt) { - nbrt = LIST_NEXT(brt, brt_list); + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) { if (time_uptime >= brt->brt_expire) bridge_rtnode_destroy(sc, brt); @@ -2433,8 +2431,7 @@ bridge_rtflush(struct bridge_softc *sc, int full) BRIDGE_LOCK_ASSERT(sc); - for (brt = LIST_FIRST(&sc->sc_rtlist); brt != NULL; brt = nbrt) { - nbrt = LIST_NEXT(brt, brt_list); + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC) bridge_rtnode_destroy(sc, brt); } @@ -2471,8 +2468,7 @@ bridge_rtdelete(struct bridge_softc *sc, struct ifnet *ifp, int full) BRIDGE_LOCK_ASSERT(sc); - for (brt = LIST_FIRST(&sc->sc_rtlist); brt != NULL; brt = nbrt) { - nbrt = LIST_NEXT(brt, brt_list); + LIST_FOREACH_SAFE(brt, &sc->sc_rtlist, brt_list, nbrt) { if (brt->brt_ifp == ifp && (full || (brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)) bridge_rtnode_destroy(sc, brt); |