]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Ignore failures from removing multicast addresses from the parent (trunk)
authorjhb <jhb@FreeBSD.org>
Mon, 17 May 2010 19:36:56 +0000 (19:36 +0000)
committerjhb <jhb@FreeBSD.org>
Mon, 17 May 2010 19:36:56 +0000 (19:36 +0000)
commit7df2d528cf045cabdde0958dcab7be61d3383c5f
treed8735b798a10bd7fe360adddef13fee1f295d067
parentb503e7f715283991d86dae898ab32a0d787943be
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.

Silence from: net@
MFC after: 4 days
sys/net/if_vlan.c