Re: panic: ifc_free_unit: bit is already cleared

From: Brooks Davis <brooks_at_one-eyed-alien.net>
Date: Wed, 5 Oct 2005 13:55:15 -0700
On Wed, Oct 05, 2005 at 10:36:39PM +0200, Pawel Jakub Dawidek wrote:
> On Wed, Oct 05, 2005 at 03:49:03PM +1300, Andrew Thompson wrote:
> +> Hi,
> +> 
> +> I have found a repeatable panic with network device cloning, unfortunatly I am
> +> unable to dump on this box. This is sparc64 with a 2 day old current.
> 
> The order is wrong in vlan_modevent().
> 
> if_clone_detach() is freeing ifc_units field, so ifc_free_unit() should not
> be called after that.
> 
> This patch should fix the problem:
> 
> 	http://people.freebsd.org/~pjd/patches/if_vlan.c.patch

Yes.  This does introduce a race in that a new interface could
be created between the vlan_clone_destroy loop and the call to
if_clone_detach.  It's going to be hard to trigger, but it probably
should be fixed.  Since cloning isn't performance critical, I think
adding a dead flag to the clone structure and failing all attempts once
the flag is set.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Received on Wed Oct 05 2005 - 18:55:17 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:44 UTC