diff options
-rw-r--r-- | net/bluetooth/hci_event.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0aba21a03b3c..6bc5a0506c6c 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c | |||
@@ -1314,8 +1314,16 @@ static inline void hci_sync_conn_complete_evt(struct hci_dev *hdev, struct sk_bu | |||
1314 | hci_dev_lock(hdev); | 1314 | hci_dev_lock(hdev); |
1315 | 1315 | ||
1316 | conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr); | 1316 | conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr); |
1317 | if (!conn) | 1317 | if (!conn) { |
1318 | goto unlock; | 1318 | if (ev->link_type == ESCO_LINK) |
1319 | goto unlock; | ||
1320 | |||
1321 | conn = hci_conn_hash_lookup_ba(hdev, ESCO_LINK, &ev->bdaddr); | ||
1322 | if (!conn) | ||
1323 | goto unlock; | ||
1324 | |||
1325 | conn->type = SCO_LINK; | ||
1326 | } | ||
1319 | 1327 | ||
1320 | if (!ev->status) { | 1328 | if (!ev->status) { |
1321 | conn->handle = __le16_to_cpu(ev->handle); | 1329 | conn->handle = __le16_to_cpu(ev->handle); |