]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.6.8/nfc-use-dynamic-initialization-for-rwlocks.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 3.6.8 / nfc-use-dynamic-initialization-for-rwlocks.patch
1 From fe235b58d517d623bf6d40c77afca1b0ee6fc85d Mon Sep 17 00:00:00 2001
2 From: Szymon Janc <szymon.janc@tieto.com>
3 Date: Tue, 25 Sep 2012 12:42:50 +0200
4 Subject: NFC: Use dynamic initialization for rwlocks
5
6 From: Szymon Janc <szymon.janc@tieto.com>
7
8 commit fe235b58d517d623bf6d40c77afca1b0ee6fc85d upstream.
9
10 If rwlock is dynamically allocated but statically initialized it is
11 missing proper lockdep annotation.
12
13 INFO: trying to register non-static key.
14 the code is fine but needs lockdep annotation.
15 turning off the locking correctness validator.
16 Pid: 3352, comm: neard Not tainted 3.5.0-999-nfc+ #2
17 Call Trace:
18 [<ffffffff810c8526>] __lock_acquire+0x8f6/0x1bf0
19 [<ffffffff81739045>] ? printk+0x4d/0x4f
20 [<ffffffff810c9eed>] lock_acquire+0x9d/0x220
21 [<ffffffff81702bfe>] ? nfc_llcp_sock_from_sn+0x4e/0x160
22 [<ffffffff81746724>] _raw_read_lock+0x44/0x60
23 [<ffffffff81702bfe>] ? nfc_llcp_sock_from_sn+0x4e/0x160
24 [<ffffffff81702bfe>] nfc_llcp_sock_from_sn+0x4e/0x160
25 [<ffffffff817034a7>] nfc_llcp_get_sdp_ssap+0xa7/0x1b0
26 [<ffffffff81706353>] llcp_sock_bind+0x173/0x210
27 [<ffffffff815d9c94>] sys_bind+0xe4/0x100
28 [<ffffffff8139209e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
29 [<ffffffff8174ea69>] system_call_fastpath+0x16/0x1b
30
31 Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
32 Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
33 Cc: Thomas Gleixner <tglx@linutronix.de>
34 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
35
36 ---
37 net/nfc/llcp/llcp.c | 4 ++--
38 1 file changed, 2 insertions(+), 2 deletions(-)
39
40 --- a/net/nfc/llcp/llcp.c
41 +++ b/net/nfc/llcp/llcp.c
42 @@ -1182,8 +1182,8 @@ int nfc_llcp_register_device(struct nfc_
43 goto err_rx_wq;
44 }
45
46 - local->sockets.lock = __RW_LOCK_UNLOCKED(local->sockets.lock);
47 - local->connecting_sockets.lock = __RW_LOCK_UNLOCKED(local->connecting_sockets.lock);
48 + rwlock_init(&local->sockets.lock);
49 + rwlock_init(&local->connecting_sockets.lock);
50
51 nfc_llcp_build_gb(local);
52