Skip to content

Commit

Permalink
[Bluetooth] Handling pending connect attempts after inquiry
Browse files Browse the repository at this point in the history
After an inquiry completed or got canceled the Bluetooth core should
check for any pending connect attempts.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Marcel Holtmann authored and David S. Miller committed Nov 22, 2006
1 parent e52726d commit 6bd5741
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
static void hci_cc_link_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
{
__u8 status;
struct hci_conn *pend;

BT_DBG("%s ocf 0x%x", hdev->name, ocf);

Expand All @@ -71,6 +72,15 @@ static void hci_cc_link_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb
clear_bit(HCI_INQUIRY, &hdev->flags);
hci_req_complete(hdev, status);
}

hci_dev_lock(hdev);

pend = hci_conn_hash_lookup_state(hdev, ACL_LINK, BT_CONNECT2);
if (pend)
hci_acl_connect(pend);

hci_dev_unlock(hdev);

break;

default:
Expand Down Expand Up @@ -565,11 +575,20 @@ static void hci_cs_info_param(struct hci_dev *hdev, __u16 ocf, __u8 status)
static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
{
__u8 status = *((__u8 *) skb->data);
struct hci_conn *pend;

BT_DBG("%s status %d", hdev->name, status);

clear_bit(HCI_INQUIRY, &hdev->flags);
hci_req_complete(hdev, status);

hci_dev_lock(hdev);

pend = hci_conn_hash_lookup_state(hdev, ACL_LINK, BT_CONNECT2);
if (pend)
hci_acl_connect(pend);

hci_dev_unlock(hdev);
}

/* Inquiry Result */
Expand Down

0 comments on commit 6bd5741

Please sign in to comment.