summaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
authorGustavo Padovan2012-05-28 03:27:54 +0200
committerJohan Hedberg2012-06-05 05:34:11 +0200
commit0797e01d877b9677d07b89e0776c061df8878f27 (patch)
treec29271d0eac5b7d754149bc91929a47df4d90544 /net/bluetooth
parentBluetooth: Add l2cap_chan->ops->ready() (diff)
downloadkernel-qcow2-linux-0797e01d877b9677d07b89e0776c061df8878f27.tar.gz
kernel-qcow2-linux-0797e01d877b9677d07b89e0776c061df8878f27.tar.xz
kernel-qcow2-linux-0797e01d877b9677d07b89e0776c061df8878f27.zip
Bluetooth: Use chan->state instead of sk->sk_state
These vars are kept in sync so we can use chan->state here. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap_core.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 5947eb1c1bee..35e6d7dd329b 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -1442,21 +1442,17 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
goto done;
}
- lock_sock(sk);
-
- switch (sk->sk_state) {
+ switch (chan->state) {
case BT_CONNECT:
case BT_CONNECT2:
case BT_CONFIG:
/* Already connecting */
err = 0;
- release_sock(sk);
goto done;
case BT_CONNECTED:
/* Already connected */
err = -EISCONN;
- release_sock(sk);
goto done;
case BT_OPEN:
@@ -1466,13 +1462,12 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
default:
err = -EBADFD;
- release_sock(sk);
goto done;
}
/* Set destination address and psm */
+ lock_sock(sk);
bacpy(&bt_sk(sk)->dst, dst);
-
release_sock(sk);
chan->psm = psm;