I'm not sure if this is really a freebsd-net topic or
more generic kernel, but since I observed this by looking
for possible causes of a bizarre network driver crash I'll
send it here (I'm not on the freebsd-net mailing list but
I'll check the archives for a bit too).
When doing if_bridge SIOCSDRV
>... Dropping the lock is entirely the wrong thing to do -- as
>you note, if we do, then the bridge members can change out from
>under us. The only path forward is to use an sx lock, but ...
[snip]
>In code paths that modify the list of bridge members, hold both the
>BRIDGE_LOCK and the new sx lo
a.
(The patches are in Git format, I applied them to the read-only
freebsd master tree on GitHub.)
Chris
>From 65145b74d3dae68feddcf8a2aad235c3f0a981e9 Mon Sep 17 00:00:00 2001
From: Chris Torek
Date: Mon, 8 Feb 2016 18:55:30 -0800
Subject: [PATCH 1/3] ip multicast debug: fix strings vs define