Gleb Smirnoff
4c506522c1
When removing ifnets, we should first remove the reference to ifnet
...
from the interface index, then decrease refcount, not vice versa.
Otherwise there is a race (reproducible) when if_free_internal()
contests on IFNET_WLOCK(), and we got a zero-refed ifnet in the
index for a long time. It may be picked by some other thread,
that runs ifnet_byindex_ref(), who takes the ifnet from index,
and bumps refcount. When reader drops the lock, if_free_internal()
proceeds with free. Then reader tries to free it a second time.
2011-04-04 07:45:08 +00:00
..
2011-04-01 11:16:29 +00:00
2011-04-03 20:17:49 +00:00
2011-04-03 23:49:20 +00:00
2011-03-01 13:14:28 +00:00
2011-03-03 18:28:21 +00:00
2011-03-24 20:28:09 +00:00
2011-04-02 16:02:25 +00:00
2011-04-03 11:55:48 +00:00
2011-03-17 00:29:53 +00:00
2011-03-02 14:56:58 +00:00
2011-02-18 22:25:11 +00:00
2011-04-03 20:22:49 +00:00
2011-03-30 01:10:11 +00:00
2011-02-18 22:25:11 +00:00
2011-04-03 17:38:12 +00:00
2011-02-21 09:01:34 +00:00
2011-03-31 08:14:51 +00:00
2011-04-03 23:49:20 +00:00
2011-03-29 12:38:13 +00:00
2011-04-02 15:02:42 +00:00
2011-02-23 09:22:33 +00:00
2011-04-03 20:17:49 +00:00
2011-04-02 09:46:09 +00:00
2011-04-04 07:45:08 +00:00
2011-03-24 15:27:15 +00:00
2011-03-21 14:18:40 +00:00
2011-03-31 16:30:14 +00:00
2011-03-21 09:40:01 +00:00
2011-04-01 14:13:49 +00:00
2011-01-08 23:06:54 +00:00
2011-01-14 23:30:35 +00:00
2011-02-25 10:11:01 +00:00
2011-02-25 10:11:01 +00:00
2011-01-12 19:54:19 +00:00
2011-03-26 00:54:01 +00:00
2011-04-01 13:28:34 +00:00
2011-03-31 08:07:13 +00:00
2011-03-23 13:10:15 +00:00
2011-03-17 19:44:00 +00:00
2011-02-16 21:29:13 +00:00
2011-03-04 09:03:54 +00:00
2011-03-31 08:07:13 +00:00
2011-03-13 13:42:43 +00:00
2011-04-01 13:28:34 +00:00
2010-12-05 10:15:23 +00:00
2011-03-31 21:33:33 +00:00
2011-04-02 21:52:58 +00:00
2011-03-25 16:38:10 +00:00
2011-03-16 16:44:08 +00:00
2011-01-19 00:57:58 +00:00
2010-11-21 03:58:11 +00:00