summaryrefslogtreecommitdiffstats
path: root/lib/libc/include
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2009-06-24 21:09:56 +0000
committergallatin <gallatin@FreeBSD.org>2009-06-24 21:09:56 +0000
commitce189363a0ec4e65f27076207a88142a8554bfbb (patch)
tree5ded461e649a2bf5399abf07694d4ab18dae34d9 /lib/libc/include
parent4a7daf6d41bedfcb21beeb7da44f965d90ee301e (diff)
downloadFreeBSD-src-ce189363a0ec4e65f27076207a88142a8554bfbb.zip
FreeBSD-src-ce189363a0ec4e65f27076207a88142a8554bfbb.tar.gz
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.
Diffstat (limited to 'lib/libc/include')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud