Bluetooth: Enable new connection establishment procedure.
authorJakub Pawlowski <jpawlowski@google.com>
Fri, 7 Aug 2015 18:22:56 +0000 (20:22 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 10 Aug 2015 19:36:13 +0000 (21:36 +0200)
commitfa1422207756833096b54356a539e3a7d7edec4f
treec838a65b6ec3eaeb9484d030db72d43ae0ea508c
parentcc2b6911a205b327b29c1d771925f8ab2f80295f
Bluetooth: Enable new connection establishment procedure.

Currently, when trying to connect to already paired device that just
rotated its RPA MAC address, old address would be used and connection
would fail. In order to fix that, kernel must scan and receive
advertisement with fresh RPA before connecting.

This patch enables new connection establishment procedure. Instead of just
sending HCI_OP_LE_CREATE_CONN to controller, "connect" will add device to
kernel whitelist and start scan. If advertisement is received, it'll be
compared against whitelist and then trigger connection if it matches.
That fixes mentioned reconnect issue for  already paired devices. It also
make whole connection procedure more robust. We can try to connect to
multiple devices at same time now, even though controller allow only one.

Signed-off-by: Jakub Pawlowski <jpawlowski@google.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/l2cap_core.c
net/bluetooth/mgmt.c