forked from mirrors/linux
		
	[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)
 | 
			
		||||
{
 | 
			
		||||
	__u8 status;
 | 
			
		||||
	struct hci_conn *pend;
 | 
			
		||||
 | 
			
		||||
	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);
 | 
			
		||||
			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:
 | 
			
		||||
| 
						 | 
				
			
			@ -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 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue