Bluetooth: Track number of LE slave connections
Most (probably all) controllers can only deal with a single slave LE connection at a time. This patch adds a counter for such connections so that the number can be quickly looked up without iterating the connections list. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
a5c4e309b9
commit
f8218dc660
|
@ -83,6 +83,7 @@ struct hci_conn_hash {
|
||||||
unsigned int amp_num;
|
unsigned int amp_num;
|
||||||
unsigned int sco_num;
|
unsigned int sco_num;
|
||||||
unsigned int le_num;
|
unsigned int le_num;
|
||||||
|
unsigned int le_num_slave;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct bdaddr_list {
|
struct bdaddr_list {
|
||||||
|
@ -575,6 +576,8 @@ static inline void hci_conn_hash_add(struct hci_dev *hdev, struct hci_conn *c)
|
||||||
break;
|
break;
|
||||||
case LE_LINK:
|
case LE_LINK:
|
||||||
h->le_num++;
|
h->le_num++;
|
||||||
|
if (c->role == HCI_ROLE_SLAVE)
|
||||||
|
h->le_num_slave++;
|
||||||
break;
|
break;
|
||||||
case SCO_LINK:
|
case SCO_LINK:
|
||||||
case ESCO_LINK:
|
case ESCO_LINK:
|
||||||
|
@ -599,6 +602,8 @@ static inline void hci_conn_hash_del(struct hci_dev *hdev, struct hci_conn *c)
|
||||||
break;
|
break;
|
||||||
case LE_LINK:
|
case LE_LINK:
|
||||||
h->le_num--;
|
h->le_num--;
|
||||||
|
if (c->role == HCI_ROLE_SLAVE)
|
||||||
|
h->le_num_slave--;
|
||||||
break;
|
break;
|
||||||
case SCO_LINK:
|
case SCO_LINK:
|
||||||
case ESCO_LINK:
|
case ESCO_LINK:
|
||||||
|
|
Loading…
Reference in New Issue