Eric Dumazet
ccf434380d
net: fix dev_seq_next()
...
Commit c6d14c8456 (net: Introduce for_each_netdev_rcu() iterator)
added a race in dev_seq_next().
The rcu_dereference() call should be done _before_ testing the end of
list, or we might return a wrong net_device if a concurrent thread
changes net_device list under us.
Note : discovered thanks to a sparse warning :
net/core/dev.c:3919:9: error: incompatible types in comparison expression
(different address spaces)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com >
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2011-01-27 15:02:56 -08:00
..
2011-01-17 10:54:41 -08:00
2011-01-12 15:15:14 -08:00
2011-01-13 08:03:25 -08:00
2011-01-13 09:58:14 -08:00
2011-01-14 12:38:18 +01:00
2011-01-12 14:49:17 -08:00
2011-01-12 14:37:42 +09:00
2011-01-20 17:50:17 +01:00
2011-01-20 17:50:17 +01:00
2011-01-20 17:50:17 +01:00
2011-01-20 17:50:17 +01:00
2011-01-13 08:03:19 -08:00
2011-01-13 21:04:07 -05:00
2011-01-14 18:11:59 +03:00
2011-01-12 14:33:05 +00:00
2011-01-14 13:17:26 -08:00
2011-01-13 08:03:08 -08:00
2011-01-20 18:30:17 -08:00
2011-01-20 18:30:17 -08:00
2011-01-19 23:51:37 +01:00
2011-01-15 20:07:45 -05:00
2011-01-10 13:31:14 -08:00
2011-01-13 08:03:12 -08:00
2011-01-13 10:45:01 -08:00
2011-01-13 08:03:17 -08:00
2011-01-13 17:32:46 -08:00
2011-01-24 14:51:56 -08:00
2011-01-12 12:47:34 -05:00
2011-01-13 08:03:22 -08:00
2011-01-13 08:03:13 -08:00
2011-01-15 20:07:47 -05:00
2011-01-20 17:01:09 -08:00
2011-01-13 20:00:02 +00:00
2011-01-10 16:10:33 -08:00
2011-01-13 19:59:58 +00:00
2011-01-13 19:59:52 +00:00
2011-01-17 10:54:41 -08:00
2011-01-13 21:49:56 -08:00
2011-01-12 20:16:43 -05:00
2011-01-15 20:07:33 -05:00
2011-01-17 03:26:26 -05:00
2011-01-17 08:21:42 -05:00
2011-01-13 14:47:54 +01:00
2011-01-24 14:45:11 +10:30
2011-01-10 22:11:23 +01:00
2011-01-14 08:06:39 -08:00
2011-01-13 09:58:38 -08:00
2011-01-13 17:32:48 -08:00
2011-01-10 22:11:23 +01:00
2011-01-13 15:46:45 -05:00
2011-01-11 23:55:51 +01:00
2011-01-19 23:31:09 -08:00
2011-01-13 09:58:14 -08:00
2011-01-22 17:34:25 +01:00
2011-01-22 17:34:25 +01:00
2011-01-13 10:25:58 -08:00
2011-01-13 17:32:31 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 17:32:47 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 08:03:07 -08:00
2011-01-12 11:30:50 +02:00
2011-01-12 11:23:08 +02:00
2011-01-12 11:23:12 +02:00
2011-01-13 08:03:06 -08:00
2011-01-13 08:03:05 -08:00
2011-01-14 13:12:45 +00:00
2011-01-21 13:38:57 -08:00
2011-01-17 10:44:31 -06:00
2011-01-20 17:02:06 -08:00
2011-01-15 13:28:17 +02:00
2011-01-13 17:32:34 -08:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:41 -08:00
2011-01-21 08:40:30 -08:00
2011-01-13 17:32:46 -08:00
2011-01-13 17:32:43 -08:00
2011-01-24 14:32:52 +10:30
2011-01-24 14:32:52 +10:30
2011-01-16 13:47:07 -05:00
2011-01-15 20:07:33 -05:00
2011-01-12 20:03:43 -05:00
2011-01-12 20:03:43 -05:00
2011-01-27 15:02:56 -08:00
2011-01-18 16:08:30 +01:00
2011-01-14 13:17:26 -08:00
2011-01-15 20:07:34 -05:00
2011-01-10 15:40:52 -05:00
2011-01-15 22:01:58 -07:00
2011-01-14 07:52:02 -08:00
2011-01-13 17:32:43 -08:00
2011-01-13 17:32:36 -08:00
2011-01-16 13:47:07 -05:00
2011-01-14 09:29:05 -08:00
2011-01-16 11:56:26 -08:00
2011-01-14 15:23:25 -08:00
2011-01-19 23:31:11 -08:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:10 -08:00
2011-01-12 19:14:55 +01:00
2011-01-12 19:14:55 +01:00
2011-01-13 17:32:48 -08:00
2011-01-14 02:36:43 +00:00
2011-01-13 08:03:17 -08:00
2011-01-13 08:03:18 -08:00
2011-01-13 08:03:18 -08:00
2011-01-13 17:32:42 -08:00
2011-01-13 08:03:23 -08:00
2011-01-21 17:38:19 +01:00
2011-01-13 17:32:43 -08:00
2011-01-13 08:03:19 -08:00
2011-01-13 15:06:28 +09:00
2011-01-24 15:32:47 -08:00
2011-01-13 10:25:58 -08:00
2011-01-13 20:15:35 -08:00
2011-01-13 17:32:42 -08:00
2011-01-12 05:14:15 -05:00
2011-01-13 08:03:21 -08:00
2011-01-13 08:03:20 -08:00
2011-01-13 08:03:08 -08:00
2011-01-13 08:03:20 -08:00
2011-01-13 08:03:18 -08:00
2011-01-24 14:45:11 +10:30
2011-01-13 17:32:34 -08:00
2011-01-13 17:32:31 -08:00
2011-01-13 08:03:24 -08:00