Eric Dumazet
46bcf14f44
filter: fix sk_filter rcu handling
...
Pavel Emelyanov tried to fix a race between sk_filter_(de|at)tach and
sk_clone() in commit 47e958eac2
Problem is we can have several clones sharing a common sk_filter, and
these clones might want to sk_filter_attach() their own filters at the
same time, and can overwrite old_filter->rcu, corrupting RCU queues.
We can not use filter->rcu without being sure no other thread could do
the same thing.
Switch code to a more conventional ref-counting technique : Do the
atomic decrement immediately and queue one rcu call back when last
reference is released.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2010-12-06 09:29:43 -08:00
..
2010-10-28 09:08:49 -05:00
2010-10-12 12:44:53 -03:00
2010-11-03 18:50:03 -07:00
2010-09-23 14:33:39 -07:00
2010-03-30 22:02:32 +09:00
2010-10-23 11:47:02 -07:00
2010-10-17 13:49:14 -07:00
2010-10-13 14:40:34 -07:00
2010-09-23 14:33:39 -07:00
2010-08-20 01:42:59 -07:00
2010-10-16 11:13:24 -07:00
2010-06-11 18:37:08 -07:00
2010-10-05 00:47:39 -07:00
2010-11-29 09:45:15 -08:00
2010-09-29 19:45:35 -07:00
2010-03-30 22:02:32 +09:00
2010-11-15 15:00:42 -05:00
2010-10-07 09:43:45 +02:00
2010-06-03 03:21:52 -07:00
2010-03-27 19:23:46 -07:00
2010-06-03 03:21:52 -07:00
2010-06-10 23:31:35 -07:00
2010-11-10 12:12:00 -08:00
2010-11-15 15:00:42 -05:00
2010-10-27 11:37:31 -07:00
2010-10-27 11:37:32 -07:00
2010-09-28 23:38:15 -07:00
2010-10-25 13:09:44 -07:00
2010-10-05 13:35:30 -04:00
2010-08-21 23:05:39 -07:00
2010-04-13 14:49:31 -07:00
2010-02-08 16:50:53 -05:00
2010-05-18 15:36:06 -07:00
2010-04-15 23:36:37 -07:00
2010-07-12 20:21:46 -07:00
2010-08-30 13:23:33 -07:00
2010-09-23 14:33:39 -07:00
2010-06-30 13:44:29 -07:00
2010-10-21 13:06:43 +02:00
2010-06-23 13:16:38 -07:00
2010-04-27 12:39:01 -07:00
2010-10-27 11:37:33 -07:00
2010-06-10 23:31:35 -07:00
2010-04-13 01:41:33 -07:00
2010-10-25 13:09:45 -07:00
2010-10-28 10:27:03 -07:00
2010-10-21 11:04:43 +02:00
2010-10-25 14:18:28 -07:00
2010-02-16 23:05:38 -08:00
2010-10-27 11:37:32 -07:00
2010-09-23 14:33:39 -07:00
2010-06-03 03:21:52 -07:00
2010-03-31 14:49:12 -04:00
2010-07-26 15:09:04 -04:00
2010-10-13 15:45:22 -04:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2010-06-03 03:21:52 -07:00
2010-11-18 09:40:04 -08:00
2010-10-25 14:18:27 -07:00
2010-03-30 22:02:32 +09:00
2010-11-04 12:26:34 -07:00
2010-03-30 22:02:32 +09:00
2010-06-02 03:23:51 -07:00
2010-10-27 11:37:31 -07:00
2010-09-08 13:42:22 -07:00
2010-07-20 16:44:35 -04:00
2010-01-17 19:09:39 -08:00
2010-09-27 15:03:33 -07:00
2010-10-21 03:09:45 -07:00
2010-10-21 03:09:47 -07:00
2010-06-16 14:55:56 -07:00
2010-06-30 13:31:19 -07:00
2010-12-06 09:29:43 -08:00
2010-11-10 12:12:00 -08:00
2010-04-23 23:35:28 -07:00
2010-11-10 12:12:00 -08:00
2010-05-17 17:39:27 -07:00
2010-04-22 16:12:36 -07:00
2010-10-27 11:37:32 -07:00