Bluetooth: AMP: Add handle to hci_chan structure
hci_chan will be identified by handle used in logical link creation process. This handle is used in AMP ACL-U packet handle field. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:

committed by
Gustavo Padovan

parent
53502d69be
commit
42c4e53e7a
@@ -989,3 +989,35 @@ void hci_chan_list_flush(struct hci_conn *conn)
|
||||
list_for_each_entry_safe(chan, n, &conn->chan_list, list)
|
||||
hci_chan_del(chan);
|
||||
}
|
||||
|
||||
static struct hci_chan *__hci_chan_lookup_handle(struct hci_conn *hcon,
|
||||
__u16 handle)
|
||||
{
|
||||
struct hci_chan *hchan;
|
||||
|
||||
list_for_each_entry(hchan, &hcon->chan_list, list) {
|
||||
if (hchan->handle == handle)
|
||||
return hchan;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct hci_chan *hci_chan_lookup_handle(struct hci_dev *hdev, __u16 handle)
|
||||
{
|
||||
struct hci_conn_hash *h = &hdev->conn_hash;
|
||||
struct hci_conn *hcon;
|
||||
struct hci_chan *hchan = NULL;
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
list_for_each_entry_rcu(hcon, &h->list, list) {
|
||||
hchan = __hci_chan_lookup_handle(hcon, handle);
|
||||
if (hchan)
|
||||
break;
|
||||
}
|
||||
|
||||
rcu_read_unlock();
|
||||
|
||||
return hchan;
|
||||
}
|
||||
|
Reference in New Issue
Block a user