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

From: Florian Westphal <[email-masked]>
Date: Thu, 2 Nov 2017 20:06:31 +0100

Cong Wang <[email-masked]> 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 <[email-masked]>
> Date:   Tue Aug 15 16:34:44 2017 +0200
> 
>     ipv4: route: set ipv4 RTM_GETROUTE to not use rtnl
> 
>     Signed-off-by: Florian Westphal <[email-masked]>
>     Signed-off-by: David S. Miller <[email-masked]>
> 
> 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.