diff options
author | Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> | 2012-05-30 15:39:21 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-06-05 06:34:15 +0300 |
commit | dfc94dbdb999154dc2ff44e6011a4912c0b29e88 (patch) | |
tree | 26271a8b560a1f239fedc61a6dde79dd187f9a86 /net/bluetooth | |
parent | f0f6279976c8f0768468293546785c18894a704c (diff) | |
download | op-kernel-dev-dfc94dbdb999154dc2ff44e6011a4912c0b29e88.zip op-kernel-dev-dfc94dbdb999154dc2ff44e6011a4912c0b29e88.tar.gz |
Bluetooth: Allow only one LE connection attempt
Only one outgoing LE connection attempt should be possible.
hci_connect() will now return -EBUSY in case there's another pending
outgoing connection.
Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/hci_conn.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 1458667b..2fcced3 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -483,6 +483,11 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, if (type == LE_LINK) { le = hci_conn_hash_lookup_ba(hdev, LE_LINK, dst); if (!le) { + le = hci_conn_hash_lookup_state(hdev, LE_LINK, + BT_CONNECT); + if (le) + return ERR_PTR(-EBUSY); + le = hci_conn_add(hdev, LE_LINK, dst); if (!le) return ERR_PTR(-ENOMEM); |