On Monday 17 May 2010 3:36:56 pm John Baldwin wrote: > Author: jhb > Date: Mon May 17 19:36:56 2010 > New Revision: 208212 > URL: http://svn.freebsd.org/changeset/base/208212 > > Log: > Ignore failures from removing multicast addresses from the parent (trunk) > interface when tearing down a vlan interface. If a trunk interface is > detached, all of its multicast addresses are removed before the ifnet > departure eventhandlers are invoked. This means that all of the multicast > addresses are removed before the vlan interfaces are removed which causes > the if_delmulti() calls in the vlan teardown to fail. > > In the VLAN_ARRAY case, this left vlan interfaces referencing a no longer > valid parent interface. In the !VLAN_ARRAY case, the eventhandler gets > stuck in an infinite loop retrying vlan_unconfig_locked() forever. In > general the callers of vlan_unconfig_locked() do not expect nor handle > failure, so I believe it is safer to ignore the errors and tear down as > much of the vlan state as possible.
The infinite loop is reproducible by doing something like: ifconfig cxgb0.100 create <.. configure cxgb0.100 ..> <.. listen for multicast on cxgb0.100 ..> kldunload if_cxgb.ko In 7 the infinite loop occurs under Giant which causes maximum fun as ptys for sshd need Giant still in 7. -- John Baldwin _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"