WARNING: possible recursive locking detected on linux-next

2017-05-18 Thread Corentin Labbe
Hello

Since linux-next-20170516 I got the following warning trace:
[4.310450] nf_tables: (c) 2007-2009 Patrick McHardy 

[4.321211] 
[4.326516] WARNING: possible recursive locking detected
[4.331823] 4.12.0-rc1-next-20170518+ #274 Not tainted
[4.336954] 
[4.342258] swapper/0/1 is trying to acquire lock:
[4.347043]  (cpu_hotplug_lock.rw_sem){++}, at: [] 
stop_machine+0x1c/0x3c
[4.355060] 
   but task is already holding lock:
[4.360886]  (cpu_hotplug_lock.rw_sem){++}, at: [] 
static_key_slow_inc+0x14/0x24
[4.369501] 
   other info that might help us debug this:
[4.376021]  Possible unsafe locking scenario:

[4.381933]CPU0
[4.384368]
[4.386812]   lock(cpu_hotplug_lock.rw_sem);
[4.391082]   lock(cpu_hotplug_lock.rw_sem);
[4.395352] 
*** DEADLOCK ***

[4.401265]  May be due to missing lock nesting notation

[4.408046] 5 locks held by swapper/0/1:
[4.411962]  #0:  (net_mutex){+.+.+.}, at: [] 
register_pernet_subsys+0x28/0x48
[4.420063]  #1:  (register_ipv4_hooks){+.+.+.}, at: [] 
ipv4_hooks_register+0xdc/0x1e0
[4.428856]  #2:  (defrag4_mutex){+.+.+.}, at: [] 
nf_defrag_ipv4_enable+0x48/0x8c
[4.437213]  #3:  (cpu_hotplug_lock.rw_sem){++}, at: [] 
static_key_slow_inc+0x14/0x24
[4.446261]  #4:  (jump_label_mutex){+.+...}, at: [] 
__static_key_slow_inc+0x78/0xec
[4.454877] 
   stack backtrace:
[4.459234] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 
4.12.0-rc1-next-20170518+ #274
[4.466965] Hardware name: Allwinner sun8i Family
[4.471664] Backtrace: 
[4.474121] [] (dump_backtrace) from [] 
(show_stack+0x18/0x1c)
[4.481684]  r7:c0c2dbd0 r6: r5:6093 r4:c0c2dbd0
[4.487343] [] (show_stack) from [] 
(dump_stack+0xac/0xd8)
[4.494564] [] (dump_stack) from [] 
(__lock_acquire+0xbc0/0x19f0)
[4.502389]  r10:ef05b200 r9:c0d8775c r8: r7:c0c2dcc0 r6: 
r5:c14804c0
[4.510210]  r4:c0d8775c r3:
[4.513788] [] (__lock_acquire) from [] 
(lock_acquire+0x74/0x90)
[4.521526]  r10:c0b37858 r9:c0c55348 r8:0001 r7:0001 r6:6013 
r5:
[4.529344]  r4:e000
[4.531883] [] (lock_acquire) from [] 
(get_online_cpus+0x58/0xe0)
[4.539706]  r8:c0959750 r7:c01ccb28 r6:c0c18ff4 r5: r4:c0c19644
[4.546404] [] (get_online_cpus) from [] 
(stop_machine+0x1c/0x3c)
[4.554226]  r7:c09bd960 r6: r5:ef04dce8 r4:c010f964
[4.559885] [] (stop_machine) from [] 
(patch_text+0x2c/0x34)
[4.567273]  r7:c09bd960 r6:c14989d4 r5:c0c58b64 r4:c06ae18c
[4.572932] [] (patch_text) from [] 
(arch_jump_label_transform+0x28/0x44)
[4.581450] [] (arch_jump_label_transform) from [] 
(__jump_label_update+0x94/0x9c)
[4.590745]  r5:c0c58b64 r4:c0c58a68
[4.594322] [] (__jump_label_update) from [] 
(jump_label_update+0x94/0x130)
[4.603011]  r7:c09bd960 r6:eea28f80 r5:c14989d4 r4:c0c58b64
[4.608668] [] (jump_label_update) from [] 
(__static_key_slow_inc+0xd8/0xec)
[4.617444]  r7:c09bd960 r6:eea28f80 r5:c0c57964 r4:c14989d4
[4.623101] [] (__static_key_slow_inc) from [] 
(static_key_slow_inc+0x1c/0x24)
[4.632047]  r5:c0c57964 r4:c14989d4
[4.635628] [] (static_key_slow_inc) from [] 
(nf_register_net_hook+0x148/0x1a8)
[4.644662]  r5:c0c57964 r4:c0c501c0
[4.648242] [] (nf_register_net_hook) from [] 
(nf_register_net_hooks+0x40/0x78)
[4.657279]  r9:c0c55348 r8:0002 r7:c0c4fd00 r6:c0c57b15 r5: 
r4:c0c55348
[4.665019] [] (nf_register_net_hooks) from [] 
(nf_defrag_ipv4_enable+0x74/0x8c)
[4.674143]  r9:c0c578ae r8:0009 r7:0009 r6:c0c57b15 r5:c0c4fd00 
r4:
[4.681883] [] (nf_defrag_ipv4_enable) from [] 
(ipv4_hooks_register+0x1a4/0x1e0)
[4.691003]  r5:c0c4fd00 r4:eea280c0
[4.694584] [] (ipv4_hooks_register) from [] 
(nf_ct_l3proto_pernet_register+0x30/0x3c)
[4.704226]  r7:ef0dc980 r6:c0c4fd00 r5:c0c4fd00 r4:
[4.709886] [] (nf_ct_l3proto_pernet_register) from [] 
(ipv4_net_init+0x30/0x68)
[4.719012] [] (ipv4_net_init) from [] 
(ops_init+0x104/0x16c)
[4.726486]  r5:eea280c0 r4:c0c552a0
[4.730065] [] (ops_init) from [] 
(register_pernet_operations+0x108/0x1ac)
[4.738670]  r9:c0c43cbc r8:ef04de70 r7:c0c4fcd0 r6:c0c552a0 r5: 
r4:c0c4fd00
[4.746409] [] (register_pernet_operations) from [] 
(register_pernet_subsys+0x34/0x48)
[4.756054]  r9: r8:c0c60780 r7:c0b37850 r6:c0c552a0 r5:c0c4fc44 
r4:c0c4fc40
[4.763797] [] (register_pernet_subsys) from [] 
(nf_conntrack_l3proto_ipv4_init+0x38/0xb4)
[4.773786]  r7:c0b37850 r6:e000 r5:c0b2cf24 r4:
[4.779447] [] (nf_conntrack_l3proto_ipv4_init) from [] 
(do_one_initcall+0x5c/0x198)
[4.788913]  r5:c0b2cf24 r4:c0c0f4cc
[4.792494] [] (do_one_initcall) from [] 

WARNING: possible recursive locking detected on linux-next

2017-05-18 Thread Corentin Labbe
Hello

Since linux-next-20170516 I got the following warning trace:
[4.310450] nf_tables: (c) 2007-2009 Patrick McHardy 

[4.321211] 
[4.326516] WARNING: possible recursive locking detected
[4.331823] 4.12.0-rc1-next-20170518+ #274 Not tainted
[4.336954] 
[4.342258] swapper/0/1 is trying to acquire lock:
[4.347043]  (cpu_hotplug_lock.rw_sem){++}, at: [] 
stop_machine+0x1c/0x3c
[4.355060] 
   but task is already holding lock:
[4.360886]  (cpu_hotplug_lock.rw_sem){++}, at: [] 
static_key_slow_inc+0x14/0x24
[4.369501] 
   other info that might help us debug this:
[4.376021]  Possible unsafe locking scenario:

[4.381933]CPU0
[4.384368]
[4.386812]   lock(cpu_hotplug_lock.rw_sem);
[4.391082]   lock(cpu_hotplug_lock.rw_sem);
[4.395352] 
*** DEADLOCK ***

[4.401265]  May be due to missing lock nesting notation

[4.408046] 5 locks held by swapper/0/1:
[4.411962]  #0:  (net_mutex){+.+.+.}, at: [] 
register_pernet_subsys+0x28/0x48
[4.420063]  #1:  (register_ipv4_hooks){+.+.+.}, at: [] 
ipv4_hooks_register+0xdc/0x1e0
[4.428856]  #2:  (defrag4_mutex){+.+.+.}, at: [] 
nf_defrag_ipv4_enable+0x48/0x8c
[4.437213]  #3:  (cpu_hotplug_lock.rw_sem){++}, at: [] 
static_key_slow_inc+0x14/0x24
[4.446261]  #4:  (jump_label_mutex){+.+...}, at: [] 
__static_key_slow_inc+0x78/0xec
[4.454877] 
   stack backtrace:
[4.459234] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 
4.12.0-rc1-next-20170518+ #274
[4.466965] Hardware name: Allwinner sun8i Family
[4.471664] Backtrace: 
[4.474121] [] (dump_backtrace) from [] 
(show_stack+0x18/0x1c)
[4.481684]  r7:c0c2dbd0 r6: r5:6093 r4:c0c2dbd0
[4.487343] [] (show_stack) from [] 
(dump_stack+0xac/0xd8)
[4.494564] [] (dump_stack) from [] 
(__lock_acquire+0xbc0/0x19f0)
[4.502389]  r10:ef05b200 r9:c0d8775c r8: r7:c0c2dcc0 r6: 
r5:c14804c0
[4.510210]  r4:c0d8775c r3:
[4.513788] [] (__lock_acquire) from [] 
(lock_acquire+0x74/0x90)
[4.521526]  r10:c0b37858 r9:c0c55348 r8:0001 r7:0001 r6:6013 
r5:
[4.529344]  r4:e000
[4.531883] [] (lock_acquire) from [] 
(get_online_cpus+0x58/0xe0)
[4.539706]  r8:c0959750 r7:c01ccb28 r6:c0c18ff4 r5: r4:c0c19644
[4.546404] [] (get_online_cpus) from [] 
(stop_machine+0x1c/0x3c)
[4.554226]  r7:c09bd960 r6: r5:ef04dce8 r4:c010f964
[4.559885] [] (stop_machine) from [] 
(patch_text+0x2c/0x34)
[4.567273]  r7:c09bd960 r6:c14989d4 r5:c0c58b64 r4:c06ae18c
[4.572932] [] (patch_text) from [] 
(arch_jump_label_transform+0x28/0x44)
[4.581450] [] (arch_jump_label_transform) from [] 
(__jump_label_update+0x94/0x9c)
[4.590745]  r5:c0c58b64 r4:c0c58a68
[4.594322] [] (__jump_label_update) from [] 
(jump_label_update+0x94/0x130)
[4.603011]  r7:c09bd960 r6:eea28f80 r5:c14989d4 r4:c0c58b64
[4.608668] [] (jump_label_update) from [] 
(__static_key_slow_inc+0xd8/0xec)
[4.617444]  r7:c09bd960 r6:eea28f80 r5:c0c57964 r4:c14989d4
[4.623101] [] (__static_key_slow_inc) from [] 
(static_key_slow_inc+0x1c/0x24)
[4.632047]  r5:c0c57964 r4:c14989d4
[4.635628] [] (static_key_slow_inc) from [] 
(nf_register_net_hook+0x148/0x1a8)
[4.644662]  r5:c0c57964 r4:c0c501c0
[4.648242] [] (nf_register_net_hook) from [] 
(nf_register_net_hooks+0x40/0x78)
[4.657279]  r9:c0c55348 r8:0002 r7:c0c4fd00 r6:c0c57b15 r5: 
r4:c0c55348
[4.665019] [] (nf_register_net_hooks) from [] 
(nf_defrag_ipv4_enable+0x74/0x8c)
[4.674143]  r9:c0c578ae r8:0009 r7:0009 r6:c0c57b15 r5:c0c4fd00 
r4:
[4.681883] [] (nf_defrag_ipv4_enable) from [] 
(ipv4_hooks_register+0x1a4/0x1e0)
[4.691003]  r5:c0c4fd00 r4:eea280c0
[4.694584] [] (ipv4_hooks_register) from [] 
(nf_ct_l3proto_pernet_register+0x30/0x3c)
[4.704226]  r7:ef0dc980 r6:c0c4fd00 r5:c0c4fd00 r4:
[4.709886] [] (nf_ct_l3proto_pernet_register) from [] 
(ipv4_net_init+0x30/0x68)
[4.719012] [] (ipv4_net_init) from [] 
(ops_init+0x104/0x16c)
[4.726486]  r5:eea280c0 r4:c0c552a0
[4.730065] [] (ops_init) from [] 
(register_pernet_operations+0x108/0x1ac)
[4.738670]  r9:c0c43cbc r8:ef04de70 r7:c0c4fcd0 r6:c0c552a0 r5: 
r4:c0c4fd00
[4.746409] [] (register_pernet_operations) from [] 
(register_pernet_subsys+0x34/0x48)
[4.756054]  r9: r8:c0c60780 r7:c0b37850 r6:c0c552a0 r5:c0c4fc44 
r4:c0c4fc40
[4.763797] [] (register_pernet_subsys) from [] 
(nf_conntrack_l3proto_ipv4_init+0x38/0xb4)
[4.773786]  r7:c0b37850 r6:e000 r5:c0b2cf24 r4:
[4.779447] [] (nf_conntrack_l3proto_ipv4_init) from [] 
(do_one_initcall+0x5c/0x198)
[4.788913]  r5:c0b2cf24 r4:c0c0f4cc
[4.792494] [] (do_one_initcall) from []