summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_conn.c
diff options
context:
space:
mode:
authorAlfonso Acosta <fons@spotify.com>2014-10-11 21:44:47 +0000
committerMarcel Holtmann <marcel@holtmann.org>2014-10-25 07:56:24 +0200
commit89cbb0638e9b7ba6fab02558f47a29f144df1a19 (patch)
tree0808b4e401c0b3b4d1cf4cfd4e731c691908d97f /net/bluetooth/hci_conn.c
parentc37a8106de1b8d286fe577599ccc9bbb0efdd7ad (diff)
downloadlinux-89cbb0638e9b7ba6fab02558f47a29f144df1a19.tar.gz
linux-89cbb0638e9b7ba6fab02558f47a29f144df1a19.tar.bz2
linux-89cbb0638e9b7ba6fab02558f47a29f144df1a19.zip
Bluetooth: Defer connection-parameter removal when unpairing
Systematically removing the LE connection parameters and autoconnect action is inconvenient for rebonding without disconnecting from userland (i.e. unpairing followed by repairing without disconnecting). The parameters will be lost after unparing and userland needs to take care of book-keeping them and re-adding them. This patch allows userland to forget about parameter management when rebonding without disconnecting. It defers clearing the connection parameters when unparing without disconnecting, giving a chance of keeping the parameters if a repairing happens before the connection is closed. Signed-off-by: Alfonso Acosta <fons@spotify.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/hci_conn.c')
-rw-r--r--net/bluetooth/hci_conn.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index b9517bd17190..11aac06d53ce 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -544,6 +544,9 @@ int hci_conn_del(struct hci_conn *conn)
hci_conn_del_sysfs(conn);
+ if (test_bit(HCI_CONN_PARAM_REMOVAL_PEND, &conn->flags))
+ hci_conn_params_del(conn->hdev, &conn->dst, conn->dst_type);
+
hci_dev_put(hdev);
hci_conn_put(conn);