• Andrei Emeltchenko's avatar
    Bluetooth: Check L2CAP pending status before sending connect request · e501d055
    Andrei Emeltchenko authored
    Due to race condition in L2CAP state machine L2CAP Connection Request
    may be sent twice for SDP with the same source channel id. Problems
    reported connecting to Apple products, some carkit, Blackberry phones.
    
    ...
    2010-06-07 21:18:03.651031 < ACL data: handle 1 flags 0x02 dlen 12
        L2CAP(s): Connect req: psm 1 scid 0x0040
    2010-06-07 21:18:03.653473 > HCI Event: Number of Completed Packets (0x13) plen 5
        handle 1 packets 1
    2010-06-07 21:18:03.653808 > HCI Event: Auth Complete (0x06) plen 3
        status 0x00 handle 1
    2010-06-07 21:18:03.653869 < ACL data: handle 1 flags 0x02 dlen 12
        L2CAP(s): Connect req: psm 1 scid 0x0040
    ...
    
    Patch uses L2CAP_CONF_CONNECT_PEND flag to mark that L2CAP Connection
    Request has been sent already.
    
    Modified version of patch from Ville Tervo.
    Signed-off-by: default avatarAndrei Emeltchenko <andrei.emeltchenko@nokia.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    e501d055
l2cap.c 105 KB