Re: INFO: trying to register non-static key in rhashtable_walk_enter

From: Willem de Bruijn
Date: Sat May 18 2019 - 14:22:02 EST


On Sat, May 18, 2019 at 2:09 PM Willem de Bruijn
<willemdebruijn.kernel@xxxxxxxxx> wrote:
>
> On Sat, May 18, 2019 at 3:34 AM syzbot
> <syzbot+1e8114b61079bfe9cbc5@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > Hello,
> >
> > syzbot found the following crash on:
> >
> > HEAD commit: 510e2ced ipv6: fix src addr routing with the exception table
> > git tree: net
> > console output: https://syzkaller.appspot.com/x/log.txt?x=15b7e608a00000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=82f0809e8f0a8c87
> > dashboard link: https://syzkaller.appspot.com/bug?extid=1e8114b61079bfe9cbc5
> > compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> >
> > Unfortunately, I don't have any reproducer for this crash yet.
> >
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+1e8114b61079bfe9cbc5@xxxxxxxxxxxxxxxxxxxxxxxxx
> >
> > INFO: trying to register non-static key.
> > the code is fine but needs lockdep annotation.
>
> All these five rhashtable_walk_enter probably have the same root cause.
>
> Bisected to commit 7e27e8d6130c (" tipc: switch order of device
> registration to fix a crash"). Reverting that fixes it.
>
> Before the commit, tipc_init succeeds. After the commit it fails at
> register_pernet_subsys(&tipc_net_ops) due to error in
>
> tipc_init_net
> tipc_topsrv_start
> tipc_topsrv_create_listener
> sock_create_kern
>
> On a related note, in tipc_topsrv_start srv is also not freed on later
> error paths.

and tipc_topsrv_stop is not called in tipc_init_net on later error paths.