Files
kernel-tenderloin-3.0/include/linux
Tetsuo Handa 4221a9918e Add RCU check for find_task_by_vpid().
find_task_by_vpid() says "Must be called under rcu_read_lock().". But due to
commit 3120438 "rcu: Disable lockdep checking in RCU list-traversal primitives",
we are currently unable to catch "find_task_by_vpid() with tasklist_lock held
but RCU lock not held" errors due to the RCU-lockdep checks being
suppressed in the RCU variants of the struct list_head traversals.
This commit therefore places an explicit check for being in an RCU
read-side critical section in find_task_by_pid_ns().

  ===================================================
  [ INFO: suspicious rcu_dereference_check() usage. ]
  ---------------------------------------------------
  kernel/pid.c:386 invoked rcu_dereference_check() without protection!

  other info that might help us debug this:

  rcu_scheduler_active = 1, debug_locks = 1
  1 lock held by rc.sysinit/1102:
   #0:  (tasklist_lock){.+.+..}, at: [<c1048340>] sys_setpgid+0x40/0x160

  stack backtrace:
  Pid: 1102, comm: rc.sysinit Not tainted 2.6.35-rc3-dirty #1
  Call Trace:
   [<c105e714>] lockdep_rcu_dereference+0x94/0xb0
   [<c104b4cd>] find_task_by_pid_ns+0x6d/0x70
   [<c104b4e8>] find_task_by_vpid+0x18/0x20
   [<c1048347>] sys_setpgid+0x47/0x160
   [<c1002b50>] sysenter_do_call+0x12/0x36

Commit updated to use a new rcu_lockdep_assert() exported API rather than
the old internal __do_rcu_dereference().

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
2010-08-19 17:18:02 -07:00
..
2010-08-05 13:26:20 +01:00
2010-08-12 06:38:24 +10:00
2010-06-04 16:00:42 -04:00
2010-08-19 17:18:00 -07:00
2010-03-12 15:53:10 -08:00
2010-06-15 09:56:01 +10:00
2010-05-27 09:12:53 -07:00
2010-05-19 13:38:54 -04:00
2010-08-12 08:43:30 -07:00
2010-08-12 08:43:30 -07:00
2010-08-12 08:43:30 -07:00
2010-06-24 21:30:09 -07:00
2010-08-18 01:09:01 -04:00
2010-08-19 17:18:00 -07:00
2010-08-06 15:36:47 -05:00
2010-08-19 17:18:00 -07:00
2010-05-19 22:41:57 -04:00
2010-05-10 16:08:01 -07:00
2010-08-04 11:00:45 +02:00
2010-08-12 04:14:05 +01:00
2010-04-09 08:36:07 +02:00
2009-12-23 13:33:54 +01:00
2010-08-18 08:35:46 -04:00
2010-08-18 08:35:48 -04:00
2010-07-12 14:41:40 +02:00
2010-03-16 08:55:32 +01:00
2010-05-25 08:07:01 -07:00
2010-05-27 09:12:42 -07:00
2010-05-21 09:34:29 -07:00
2010-07-19 11:54:16 +02:00
2010-02-09 11:13:56 +01:00
2010-03-07 22:17:09 +01:00
2010-08-11 09:23:22 +02:00
2010-03-02 12:23:42 +01:00
2010-08-11 18:21:02 +02:00
2010-06-16 18:08:13 +02:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-02-02 07:32:29 -08:00
2010-06-23 13:16:38 -07:00
2010-03-03 11:26:01 +01:00
2010-08-19 17:18:01 -07:00
2010-08-09 20:45:05 -07:00
2010-05-11 12:01:10 -07:00
2010-06-22 08:07:01 +02:00
2010-03-12 15:52:40 -08:00
2010-07-19 22:01:26 -07:00
2010-05-03 11:50:57 +02:00
2010-06-03 03:21:52 -07:00
2010-08-10 11:49:21 -07:00
2010-08-12 11:27:58 +02:00
2010-08-19 17:18:00 -07:00
2010-08-11 08:59:23 -07:00
2010-05-21 09:37:29 -07:00
2010-08-09 20:44:58 -07:00
2010-06-29 10:07:09 +02:00
2010-05-14 15:09:32 -04:00
2010-08-19 17:18:01 -07:00
2010-08-02 06:39:44 +03:00
2010-08-01 10:47:00 +03:00
2010-04-03 14:56:05 -07:00
2010-07-06 13:45:24 -04:00
2009-12-26 20:40:34 -08:00
2010-06-16 18:03:15 +02:00
2010-02-19 03:35:12 -05:00
2010-08-09 16:48:45 -04:00
2010-07-14 17:14:00 +10:00
2010-08-12 04:14:05 +01:00
2010-06-03 03:21:52 -07:00
2010-03-12 15:52:28 -08:00
2010-08-09 20:45:00 -07:00
2010-08-11 00:29:47 -04:00
2010-05-11 14:40:55 +02:00
2010-04-13 14:49:34 -07:00
2010-02-10 23:49:08 +09:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-05-17 05:27:42 +02:00
2010-06-03 03:21:52 -07:00
2010-07-02 21:59:08 -07:00
2010-08-19 17:18:00 -07:00
2010-07-05 16:14:52 -06:00
2010-07-05 16:14:25 -06:00
2010-07-31 19:53:06 +08:00
2010-07-30 09:29:35 -07:00
2010-06-03 03:21:52 -07:00
2010-07-19 01:58:48 +02:00
2010-07-19 01:58:48 +02:00
2010-03-12 15:53:11 -08:00
2010-08-04 21:53:17 -07:00
2010-02-10 17:47:17 -08:00
2010-08-19 17:18:00 -07:00
2010-06-03 03:21:52 -07:00
2010-03-12 15:52:44 -08:00
2010-08-09 16:47:27 -04:00
2010-03-02 14:28:49 -05:00
2010-05-27 09:12:50 -07:00
2010-05-30 09:02:47 -07:00
2010-05-11 10:09:47 +02:00
2010-03-12 15:53:10 -08:00
2010-07-22 13:46:21 -07:00
2010-07-23 17:08:41 +04:00
2010-08-19 17:18:00 -07:00
2010-06-03 03:21:52 -07:00
2010-08-10 13:47:46 -07:00
2010-05-25 11:41:43 -04:00
2010-03-12 15:52:44 -08:00
2010-06-16 14:55:35 -07:00
2010-08-09 16:48:44 -04:00
2010-01-14 22:38:09 -05:00
2010-05-15 23:28:39 -07:00
2010-02-18 15:43:09 -08:00
2010-03-25 17:18:43 -07:00
2010-03-23 17:19:38 +01:00
2010-05-12 23:02:23 -07:00
2010-08-18 08:35:47 -04:00
2010-08-06 10:37:02 -04:00
2010-05-19 22:40:47 -04:00
2010-08-12 11:47:26 +10:00
2010-08-11 08:59:02 -07:00
2010-05-19 22:15:46 +09:30
2010-06-03 03:21:52 -07:00
2010-04-06 20:35:58 +04:00