summaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_core.c
diff options
context:
space:
mode:
authorJohan Hedberg2014-07-04 11:37:19 +0200
committerMarcel Holtmann2014-07-04 11:58:09 +0200
commita2f41a8f370a940629a0e42258ab9e941b1dbc83 (patch)
treeb0e8d1700c2b43921e779e05ac3e17d6f39dfb83 /net/bluetooth/hci_core.c
parentBluetooth: Convert pend_le_reports into a list (diff)
downloadkernel-qcow2-linux-a2f41a8f370a940629a0e42258ab9e941b1dbc83.tar.gz
kernel-qcow2-linux-a2f41a8f370a940629a0e42258ab9e941b1dbc83.tar.xz
kernel-qcow2-linux-a2f41a8f370a940629a0e42258ab9e941b1dbc83.zip
Bluetooth: Simplify use of hci_pend_le_conns_clear()
Now that pend_le_connections is a list of hci_conn_params entries we can simply remove items from that list as we iterate through the global list of le_conn_params. This also moves the responsibility of calling hci_update_background_scan() to the functions that were previously calling hci_pend_le_conns_clear(). The only user that's left for hci_pend_le_conns_clear() is hci_dev_do_close() which anyway does not need to call hci_update_background_scan(). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r--net/bluetooth/hci_core.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 296f44748636..dd8aa5f86810 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3477,8 +3477,6 @@ void hci_pend_le_conns_clear(struct hci_dev *hdev)
list_del_init(hdev->pend_le_conns.next);
BT_DBG("All LE pending connections cleared");
-
- hci_update_background_scan(hdev);
}
/* This function requires the caller holds hdev->lock */
@@ -3601,13 +3599,12 @@ void hci_conn_params_clear_enabled(struct hci_dev *hdev)
list_for_each_entry_safe(params, tmp, &hdev->le_conn_params, list) {
if (params->auto_connect == HCI_AUTO_CONN_DISABLED)
continue;
- if (params->auto_connect == HCI_AUTO_CONN_REPORT)
- list_del_init(&params->action);
+ list_del(&params->action);
list_del(&params->list);
kfree(params);
}
- hci_pend_le_conns_clear(hdev);
+ hci_update_background_scan(hdev);
BT_DBG("All enabled LE connection parameters were removed");
}
@@ -3618,11 +3615,12 @@ void hci_conn_params_clear_all(struct hci_dev *hdev)
struct hci_conn_params *params, *tmp;
list_for_each_entry_safe(params, tmp, &hdev->le_conn_params, list) {
+ list_del(&params->action);
list_del(&params->list);
kfree(params);
}
- hci_pend_le_conns_clear(hdev);
+ hci_update_background_scan(hdev);
BT_DBG("All LE connection parameters were removed");
}