diff options
author | Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> | 2012-05-30 13:39:21 (GMT) |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-06-05 03:34:15 (GMT) |
commit | dfc94dbdb999154dc2ff44e6011a4912c0b29e88 (patch) | |
tree | 26271a8b560a1f239fedc61a6dde79dd187f9a86 /net | |
parent | f0f6279976c8f0768468293546785c18894a704c (diff) | |
download | linux-dfc94dbdb999154dc2ff44e6011a4912c0b29e88.tar.xz |
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')
-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); |