diff options
author | Luiz Otavio O Souza <luiz@netgate.com> | 2017-02-09 12:56:45 -0600 |
---|---|---|
committer | Luiz Otavio O Souza <luiz@netgate.com> | 2017-02-09 12:56:45 -0600 |
commit | 91168d55b893d0ff41403098765ffb6a890805a0 (patch) | |
tree | 429fd0d8430d5b8140c527d92b60fbb3fe2e2278 /sys/net/if_bridge.c | |
parent | ac4b1285e0aabc7a59f32412b4f2ca7674c5458f (diff) | |
parent | 9077a30ba0ad5458cceb3d0418b2f1ea7f70d556 (diff) | |
download | FreeBSD-src-91168d55b893d0ff41403098765ffb6a890805a0.zip FreeBSD-src-91168d55b893d0ff41403098765ffb6a890805a0.tar.gz |
Merge remote-tracking branch 'origin/stable/11' into devel-11
Diffstat (limited to 'sys/net/if_bridge.c')
-rw-r--r-- | sys/net/if_bridge.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index b484191..1b43a28 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -911,14 +911,18 @@ bridge_mutecaps(struct bridge_softc *sc) mask &= bif->bif_savedcaps; } + BRIDGE_XLOCK(sc); LIST_FOREACH(bif, &sc->sc_iflist, bif_next) { enabled = bif->bif_ifp->if_capenable; enabled &= ~BRIDGE_IFCAPS_STRIP; /* strip off mask bits and enable them again if allowed */ enabled &= ~BRIDGE_IFCAPS_MASK; enabled |= mask; + BRIDGE_UNLOCK(sc); bridge_set_ifcap(sc, bif, enabled); + BRIDGE_LOCK(sc); } + BRIDGE_XDROP(sc); } @@ -929,6 +933,8 @@ bridge_set_ifcap(struct bridge_softc *sc, struct bridge_iflist *bif, int set) struct ifreq ifr; int error; + BRIDGE_UNLOCK_ASSERT(sc); + bzero(&ifr, sizeof(ifr)); ifr.ifr_reqcap = set; |