If rwlock is dynamically allocated but statically initialized it is
missing proper lockdep annotation.
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
Pid: 3352, comm: neard Not tainted 3.5.0-999-nfc+ #2
Call Trace:
[<
ffffffff810c8526>] __lock_acquire+0x8f6/0x1bf0
[<
ffffffff81739045>] ? printk+0x4d/0x4f
[<
ffffffff810c9eed>] lock_acquire+0x9d/0x220
[<
ffffffff81702bfe>] ? nfc_llcp_sock_from_sn+0x4e/0x160
[<
ffffffff81746724>] _raw_read_lock+0x44/0x60
[<
ffffffff81702bfe>] ? nfc_llcp_sock_from_sn+0x4e/0x160
[<
ffffffff81702bfe>] nfc_llcp_sock_from_sn+0x4e/0x160
[<
ffffffff817034a7>] nfc_llcp_get_sdp_ssap+0xa7/0x1b0
[<
ffffffff81706353>] llcp_sock_bind+0x173/0x210
[<
ffffffff815d9c94>] sys_bind+0xe4/0x100
[<
ffffffff8139209e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[<
ffffffff8174ea69>] system_call_fastpath+0x16/0x1b
Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
INIT_WORK(&local->timeout_work, nfc_llcp_timeout_work);
- local->sockets.lock = __RW_LOCK_UNLOCKED(local->sockets.lock);
- local->connecting_sockets.lock = __RW_LOCK_UNLOCKED(local->connecting_sockets.lock);
+ rwlock_init(&local->sockets.lock);
+ rwlock_init(&local->connecting_sockets.lock);
nfc_llcp_build_gb(local);