From: Ilia Kolomisnky <ilia.kolominsky@gmail.com>
Date: Wed, 15 Jun 2011 03:52:26 +0000 (+0300)
Subject: Bluetooth: Fix L2CAP connection establishment
X-Git-Tag: v3.0-rc6~16^2~14^2~2^2
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=330605423c;p=linux.git

Bluetooth: Fix L2CAP connection establishment

In hci_conn_security ( which is used during L2CAP connection
establishment ) test for HCI_CONN_ENCRYPT_PEND state also
sets this state, which is bogus and leads to connection time-out
on L2CAP sockets in certain situations (especially when
using non-ssp devices )

Signed-off-by: Ilia Kolomisnky <iliak@ti.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
---

diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index b9aa9862d14b..d3a05b9ade7a 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -608,7 +608,7 @@ int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
 		goto encrypt;
 
 auth:
-	if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
+	if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
 		return 0;
 
 	if (!hci_conn_auth(conn, sec_level, auth_type))