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

From: David Miller
Date: Sat May 18 2019 - 16:15:15 EST


From: Willem de Bruijn <willemdebruijn.kernel@xxxxxxxxx>
Date: Sat, 18 May 2019 14:19:07 -0400

> 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.

This was gonna get fixed by:

532b0f7ece4cb2ffd24dc723ddf55242d1188e5e
tipc: fix modprobe tipc failed after switch order of device registration

I think...

But I reverted because they were still fiddling around with the fix.

This looks really bad at this point and I'm likely to revert 7e27e8d6130c
because it creates so many more bugs than it fixes :-////