Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jun 2009 14:18:52 -0700
From:      Sam Leffler <sam@freebsd.org>
To:        Andrew Gallatin <gallatin@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r194909 - head/sys/dev/mxge
Message-ID:  <4A42983C.6050307@freebsd.org>
In-Reply-To: <200906242109.n5OL9uVb029380@svn.freebsd.org>
References:  <200906242109.n5OL9uVb029380@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Gallatin wrote:
> Author: gallatin
> Date: Wed Jun 24 21:09:56 2009
> New Revision: 194909
> URL: http://svn.freebsd.org/changeset/base/194909
>
> Log:
>   Add a dying flag to prevent races at detach.
>   
>   I tried re-ordering ether_ifdetach(), but this created a new race
>   where sometimes, when under heavy receive load (>1Mpps) and running
>   tcpdump, the machine would panic.  At panic, the ithread was still in
>   the original (not dead) if_input() path, and was accessing stale BPF
>   data structs.  By using a dying flag, I can close the interface prior
>   to if_detach() to be certain the interface cannot send packets up in
>   the middle of ether_ifdetach.
>
>   

There's something else wrong.  This is just covering up the real bug.

    Sam




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A42983C.6050307>