svn commit: r194909 - head/sys/dev/mxge
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
> 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.
More information about the svn-src-all