提交 f8218dc6 编写于 作者: J Johan Hedberg 提交者: Marcel Holtmann

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: NJohan Hedberg <johan.hedberg@intel.com>
Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
上级 a5c4e309
...@@ -83,6 +83,7 @@ struct hci_conn_hash { ...@@ -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) ...@@ -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) ...@@ -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:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册