Re: suspicious RCU usage at ./include/linux/inetdevice.h:LINE

From: Cong Wang
Date: Thu Nov 02 2017 - 16:55:37 EST


On Thu, Nov 2, 2017 at 12:06 PM, Florian Westphal <fw@xxxxxxxxx> wrote:
> Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
>> > CPU: 0 PID: 23859 Comm: syz-executor2 Not tainted 4.14.0-rc5+ #140
>> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
>> > Google 01/01/2011
>> > Call Trace:
>> > __dump_stack lib/dump_stack.c:16 [inline]
>> > dump_stack+0x194/0x257 lib/dump_stack.c:52
>> > lockdep_rcu_suspicious+0x123/0x170 kernel/locking/lockdep.c:4665
>> > __in_dev_get_rtnl include/linux/inetdevice.h:230 [inline]
>> > fib_dump_info+0x1136/0x13d0 net/ipv4/fib_semantics.c:1377
>> > inet_rtm_getroute+0xf97/0x2d70 net/ipv4/route.c:2785
>>
>> This is introduced by:
>>
>> commit 394f51abb3d04f33fb798f04b16ae6b0491ea4ec
>> Author: Florian Westphal <fw@xxxxxxxxx>
>> Date: Tue Aug 15 16:34:44 2017 +0200
>>
>> ipv4: route: set ipv4 RTM_GETROUTE to not use rtnl
>>
>> Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
>> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
>>
>> Looks like we need a wrapper for rcu_dereference_protected(dev->ip_ptr).
>
> Yes, thats the alternative to
> https://patchwork.ozlabs.org/patch/833401/
>
> which switches to _rcu version.

Yeah, that works too.