From: Oleg Nesterov on
On 08/09, Paul E. McKenney wrote:
>
> On Tue, Aug 03, 2010 at 11:18:07PM -0400, Miles Lane wrote:
> > [ INFO: suspicious rcu_dereference_check() usage. ]
> > ---------------------------------------------------
> > kernel/signal.c:660 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 udevd/670:
> > #0: (tasklist_lock){.+.+..}, at: [<ffffffff8104628c>] do_exit+0x252/0x671
> > stack backtrace:
> > Pid: 670, comm: udevd Not tainted 2.6.35 #15
> > Call Trace:
> > [<ffffffff8106759c>] lockdep_rcu_dereference+0x9d/0xa6
> > [<ffffffff8104f297>] check_kill_permission+0x9d/0x132
> > [<ffffffff8105010e>] group_send_sig_info+0x1a/0x3d
> > [<ffffffff81046388>] do_exit+0x34e/0x671
> > [<ffffffff81046723>] do_group_exit+0x78/0xa3
> > [<ffffffff81046760>] sys_exit_group+0x12/0x16
> > [<ffffffff81009c82>] system_call_fastpath+0x16/0x1b
>
> Thank you again for your testing efforts!
>
> This one is a bit odd. exit_signals() holds either the tasklist_lock
> or the ->sighand->siglock over its signal manipulations, so this is
> not the code path triggering the above. I might be missing something,
> but I don't see either hrtimer_cancel() or exit_itimers() attempting
> to send signals.

Agreed, this is strange and shouldn't happen.

Perhaps, this kernel lack's David's 694f690d27dadccc8cb9d90532e76593b61fe098
"CRED: Fix RCU warning due to previous patch fixing __task_cred()'s checks"
patch?

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/