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

From: Willem de Bruijn
Date: Sat May 18 2019 - 14:12:13 EST


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.