aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/l2cap_core.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index c9c1f9257a91..d5db5a38df6a 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -594,7 +594,7 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
594 */ 594 */
595static struct sock *l2cap_get_sock_by_scid(int state, __le16 cid, bdaddr_t *src) 595static struct sock *l2cap_get_sock_by_scid(int state, __le16 cid, bdaddr_t *src)
596{ 596{
597 struct sock *s, *sk = NULL, *sk1 = NULL; 597 struct sock *sk = NULL, *sk1 = NULL;
598 struct hlist_node *node; 598 struct hlist_node *node;
599 599
600 read_lock(&l2cap_sk_list.lock); 600 read_lock(&l2cap_sk_list.lock);
@@ -613,12 +613,10 @@ static struct sock *l2cap_get_sock_by_scid(int state, __le16 cid, bdaddr_t *src)
613 sk1 = sk; 613 sk1 = sk;
614 } 614 }
615 } 615 }
616 s = node ? sk : sk1; 616
617 if (s)
618 bh_lock_sock(s);
619 read_unlock(&l2cap_sk_list.lock); 617 read_unlock(&l2cap_sk_list.lock);
620 618
621 return s; 619 return node ? sk : sk1;
622} 620}
623 621
624static void l2cap_le_conn_ready(struct l2cap_conn *conn) 622static void l2cap_le_conn_ready(struct l2cap_conn *conn)