svn commit: r194909 - head/sys/dev/mxge

Sam Leffler sam at freebsd.org
Wed Jun 24 21:18:54 UTC 2009


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



More information about the svn-src-head mailing list