net: rcu warnings in ip6fl_get_first

From: Sasha Levin
Date: Thu Feb 07 2013 - 14:33:19 EST


Hi guys,

I got the following while fuzzing with trinity inside a KVM tools guest:

[ 51.680236] ===============================
[ 51.681914] [ INFO: suspicious RCU usage. ]
[ 51.683610] 3.8.0-rc6-next-20130206-sasha-00028-g83214f7-dirty #276 Tainted: G W
[ 51.686703] -------------------------------
[ 51.688281] net/ipv6/ip6_flowlabel.c:671 suspicious rcu_dereference_check() usage!
[ 51.691345]
[ 51.691345] other info that might help us debug this:
[ 51.691345]
[ 51.694479]
[ 51.694479] rcu_scheduler_active = 1, debug_locks = 1
[ 51.697650] 2 locks held by trinity/7421:
[ 51.701271] #0: (&p->lock){+.+.+.}, at: [<ffffffff812b049a>] seq_read+0x3a/0x3d0
[ 51.704292] #1: (rcu_read_lock_bh){.+....}, at: [<ffffffff8397cde0>] ip6fl_seq_start+0x0/0xe0
[ 51.707845]
[ 51.707845] stack backtrace:
[ 51.709678] Pid: 7421, comm: trinity Tainted: G W 3.8.0-rc6-next-20130206-sasha-00028-g83214f7-dirty #276
[ 51.713495] Call Trace:
[ 51.714370] [<ffffffff81181fdb>] lockdep_rcu_suspicious+0x10b/0x120
[ 51.716560] [<ffffffff8397caca>] ip6fl_get_first+0x8a/0x140
[ 51.718755] [<ffffffff8397cdb7>] ip6fl_seq_next+0x17/0x40
[ 51.720963] [<ffffffff812b0711>] seq_read+0x2b1/0x3d0
[ 51.723056] [<ffffffff812b0460>] ? seq_lseek+0x110/0x110
[ 51.725238] [<ffffffff812f9c0c>] proc_reg_read+0x9c/0xd0
[ 51.727266] [<ffffffff812f9b70>] ? proc_reg_write+0xd0/0xd0
[ 51.729337] [<ffffffff8128b2eb>] do_loop_readv_writev+0x4b/0x90
[ 51.731846] [<ffffffff8128b566>] do_readv_writev+0xf6/0x1d0
[ 51.734092] [<ffffffff8128b6de>] vfs_readv+0x3e/0x60
[ 51.736015] [<ffffffff8128b750>] sys_readv+0x50/0xd0
[ 51.737930] [<ffffffff83d73d98>] tracesys+0xe1/0xe6

This is the result of commit "ipv6 flowlabel: Convert hash list to RCU." which
mixes between regular and _bh() locking.


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