Преглед на файлове

Bluetooth: Fix SCO state handling for incoming connections

When the remote device supports only SCO connections, on receipt of
the HCI_EV_CONN_COMPLETE event packet, the connect state is changed to
BT_CONNECTED, but the socket state is not updated. Hence, the connect()
call times out even though the SCO connection has been successfully
established.

Based on a report by Jaikumar Ganesh <jaikumar@google.com>

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Marcel Holtmann преди 16 години
родител
ревизия
c89b6e6bda
променени са 1 файла, в които са добавени 2 реда и са изтрити 1 реда
  1. 2 1
      net/bluetooth/hci_event.c

+ 2 - 1
net/bluetooth/hci_event.c

@@ -914,7 +914,8 @@ static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *s
 	if (ev->status) {
 		hci_proto_connect_cfm(conn, ev->status);
 		hci_conn_del(conn);
-	}
+	} else if (ev->link_type != ACL_LINK)
+		hci_proto_connect_cfm(conn, ev->status);
 
 unlock:
 	hci_dev_unlock(hdev);