I've been backmerging to RELENG_5 the IP multicast address locking work done by Robert Watson in HEAD and RELENG_6. This prevents various panics and corruption that happens when configuring multicast addresses. The first two parts [1][2] of the MFC are complete, and all that remains is to have drivers lock the if_addr_mtx when they synchronize their hardware address filter with the list maintained by the stack. In order to avoid breaking struct ifnet within 5.x, a global mutex if_addr_mtx is shared by all drivers. This means that FreeBSD 5.5 binary modules of these drivers will not load on FreeBSD 5.4 or earlier, because the global mutex doesn't exist. Existing binary drivers will continue work on FreeBSD 5.5 (but will lack locking around multicast address configuration). -ed [1] http://lists.freebsd.org/pipermail/cvs-src/2006-January/057620.html [2] http://lists.freebsd.org/pipermail/cvs-src/2006-January/058342.html