diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-01-15 15:57:03 -0500 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-02-27 00:14:25 -0500 |
commit | c89b6e6bda4c8021195778f47567d0cc9dbfe7ec (patch) | |
tree | babe74bb0f318f26c572859e067a4c8d1d4d43a9 /net | |
parent | 71aeeaa1fd88fe7446391e0553336f0e0c2cfe6a (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')
-rw-r--r-- | net/bluetooth/hci_event.c | 3 |
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 | ||
919 | unlock: | 920 | unlock: |
920 | hci_dev_unlock(hdev); | 921 | hci_dev_unlock(hdev); |