aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_event.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-15 15:57:03 -0500
committerMarcel Holtmann <marcel@holtmann.org>2009-02-27 00:14:25 -0500
commitc89b6e6bda4c8021195778f47567d0cc9dbfe7ec (patch)
treebabe74bb0f318f26c572859e067a4c8d1d4d43a9 /net/bluetooth/hci_event.c
parent71aeeaa1fd88fe7446391e0553336f0e0c2cfe6a (diff)
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>
Diffstat (limited to 'net/bluetooth/hci_event.c')
-rw-r--r--net/bluetooth/hci_event.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index f91ba690f5d2..beea9dbb6562 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -914,7 +914,8 @@ static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *s
914 if (ev->status) { 914 if (ev->status) {
915 hci_proto_connect_cfm(conn, ev->status); 915 hci_proto_connect_cfm(conn, ev->status);
916 hci_conn_del(conn); 916 hci_conn_del(conn);
917 } 917 } else if (ev->link_type != ACL_LINK)
918 hci_proto_connect_cfm(conn, ev->status);
918 919
919unlock: 920unlock:
920 hci_dev_unlock(hdev); 921 hci_dev_unlock(hdev);