Skip to content

Commit

Permalink
[Bluetooth] Support the case when headset falls back to SCO link
Browse files Browse the repository at this point in the history
When trying to establish an eSCO link between two devices then it can
happen that the remote device falls back to a SCO link. Currently this
case is not handled correctly and the message dispatching will break
since it is looking for eSCO packets. So in case the configured link
falls back to SCO overwrite the link type with the correct value.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Marcel Holtmann committed Jul 14, 2008
1 parent ae29319 commit 9dc0a3a
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1314,8 +1314,16 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu
hci_dev_lock(hdev);

conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr);
if (!conn)
goto unlock;
if (!conn) {
if (ev->link_type == ESCO_LINK)
goto unlock;

conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK, &ev->bdaddr);
if (!conn)
goto unlock;

conn->type = SCO_LINK;
}

if (!ev->status) {
conn->handle = __le16_to_cpu(ev->handle);
Expand Down

0 comments on commit 9dc0a3a

Please sign in to comment.