Subject: Re: mmotm 2010-04-28 - RCU whinges

From: [email-masked]
Date: Mon, 03 May 2010 11:29:50 -0400

On Mon, 03 May 2010 16:58:46 +0200, Eric Dumazet said:
> Le lundi 03 mai 2010 à 10:30 -0400, [email-masked] a écrit :

> > [    9.129872] net/netfilter/nf_log.c:55 invoked rcu_dereference_check() without protection!

> Thanks for the report !
> 
> [PATCH] net: nf_log RCU fixes
> 
> nf_log_register() and nf_log_unregister() use a mutex to have exclusive
> access to nf_logers[]. Use appropriate rcu_dereference_protected()
> lockdep annotation.

Confirming that one fixed.  Now it lives a whole 36 seconds before whinging:

[   35.328729] ===================================================
[   35.328803] [ INFO: suspicious rcu_dereference_check() usage. ]
[   35.328837] ---------------------------------------------------
[   35.328872] net/ipv6/addrconf.c:2977 invoked rcu_dereference_check() without protection!
[   35.328926] 
[   35.328927] other info that might help us debug this:
[   35.328928] 
[   35.329016] 
[   35.329016] rcu_scheduler_active = 1, debug_locks = 0
[   35.329089] 2 locks held by ifconfig/2680:
[   35.329120]  #0:  (&p->lock){+.+.+.}, at: [<ffffffff810f5db8>] seq_read+0x3a/0x42d
[   35.329217]  #1:  (rcu_read_lock_bh){.+....}, at: [<ffffffff814eec68>] rcu_read_lock_bh+0x0/0x35
[   35.329322] 
[   35.329323] stack backtrace:
[   35.329380] Pid: 2680, comm: ifconfig Tainted: G        W   2.6.34-rc5-mmotm0428 #3
[   35.329439] Call Trace:
[   35.329471]  [<ffffffff81064832>] lockdep_rcu_dereference+0xaa/0xb2
[   35.329514]  [<ffffffff814ef3ae>] if6_get_next+0x34/0x6d
[   35.329554]  [<ffffffff814ef3f8>] if6_seq_next+0x11/0x18
[   35.329595]  [<ffffffff810f6083>] seq_read+0x305/0x42d
[   35.329635]  [<ffffffff810f5d7e>] ? seq_read+0x0/0x42d
[   35.329676]  [<ffffffff81129e8c>] proc_reg_read+0x8d/0xac
[   35.329717]  [<ffffffff810db7e0>] vfs_read+0xe0/0x140
[   35.329758]  [<ffffffff810db8f6>] sys_read+0x45/0x69
[   35.329799]  [<ffffffff810025eb>] system_call_fastpath+0x16/0x1b

Maybe I need to go and stick the "RCU whinge multiple times" patch on this
kernel and get it over with. :)