[Bluetooth] Handling pending connect attempts after inquiry
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>
This commit is contained in:
parent
e52726dece
commit
6bd5741612
1 changed files with 19 additions and 0 deletions
|
@ -57,6 +57,7 @@
|
||||||
static void hci_cc_link_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
|
static void hci_cc_link_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
__u8 status;
|
__u8 status;
|
||||||
|
struct hci_conn *pend;
|
||||||
|
|
||||||
BT_DBG("%s ocf 0x%x", hdev->name, ocf);
|
BT_DBG("%s ocf 0x%x", hdev->name, ocf);
|
||||||
|
|
||||||
|
@ -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);
|
clear_bit(HCI_INQUIRY, &hdev->flags);
|
||||||
hci_req_complete(hdev, status);
|
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;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -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)
|
static inline void hci_inquiry_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
__u8 status = *((__u8 *) skb->data);
|
__u8 status = *((__u8 *) skb->data);
|
||||||
|
struct hci_conn *pend;
|
||||||
|
|
||||||
BT_DBG("%s status %d", hdev->name, status);
|
BT_DBG("%s status %d", hdev->name, status);
|
||||||
|
|
||||||
clear_bit(HCI_INQUIRY, &hdev->flags);
|
clear_bit(HCI_INQUIRY, &hdev->flags);
|
||||||
hci_req_complete(hdev, status);
|
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 */
|
/* Inquiry Result */
|
||||||
|
|
Loading…
Reference in a new issue