Bluetooth: Use req_workqueue for background scanning when powering on
authorJohan Hedberg <johan.hedberg@intel.com>
Wed, 11 Nov 2015 06:11:21 +0000 (08:11 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 19 Nov 2015 16:50:29 +0000 (17:50 +0100)
We can easily use the new req_workqueue based background scan update
for the power on case. This also removes the last external user of
__hci_update_background_scan().

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/mgmt.c

index 27504949e995b75985f33a5bac929a54210928e5..bb870c3aadaebdb0aa93266d58dd20c645143ddc 100644 (file)
@@ -7465,9 +7465,8 @@ void mgmt_index_removed(struct hci_dev *hdev)
 }
 
 /* This function requires the caller holds hdev->lock */
-static void restart_le_actions(struct hci_request *req)
+static void restart_le_actions(struct hci_dev *hdev)
 {
-       struct hci_dev *hdev = req->hdev;
        struct hci_conn_params *p;
 
        list_for_each_entry(p, &hdev->le_conn_params, list) {
@@ -7488,8 +7487,6 @@ static void restart_le_actions(struct hci_request *req)
                        break;
                }
        }
-
-       __hci_update_background_scan(req);
 }
 
 static void powered_complete(struct hci_dev *hdev, u8 status, u16 opcode)
@@ -7505,6 +7502,9 @@ static void powered_complete(struct hci_dev *hdev, u8 status, u16 opcode)
                 * decide if the public address or static address is used.
                 */
                smp_register(hdev);
+
+               restart_le_actions(hdev);
+               hci_update_background_scan(hdev);
        }
 
        hci_dev_lock(hdev);
@@ -7583,8 +7583,6 @@ static int powered_update_hci(struct hci_dev *hdev)
                         hdev->cur_adv_instance)
                        schedule_adv_instance(&req, hdev->cur_adv_instance,
                                              true);
-
-               restart_le_actions(&req);
        }
 
        link_sec = hci_dev_test_flag(hdev, HCI_LINK_SECURITY);