Bluetooth: Use hci_pend_le_action_lookup to look up report entries
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 4 Jul 2014 09:37:27 +0000 (12:37 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 4 Jul 2014 09:58:10 +0000 (11:58 +0200)
Instead of looking through the entire list of entries we can more
efficiently use the new hci_pend_le_action_lookup() function to look up
entries specifically in the pend_le_reports list. Since the search is
now limited to the right list we can also remove an unnecessary check
for list_empty() before the lookup.

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

index 9274cd2..c380545 100644 (file)
@@ -4244,14 +4244,12 @@ static void process_adv_report(struct hci_dev *hdev, u8 type, bdaddr_t *bdaddr,
                                return;
                }
 
-               if (list_empty(&hdev->pend_le_reports))
-                       return;
-
                if (type == LE_ADV_DIRECT_IND)
                        return;
 
-               param = hci_conn_params_lookup(hdev, bdaddr, bdaddr_type);
-               if (!param || param->auto_connect != HCI_AUTO_CONN_REPORT)
+               param = hci_pend_le_action_lookup(&hdev->pend_le_reports,
+                                                 bdaddr, bdaddr_type);
+               if (!param)
                        return;
 
                if (type == LE_ADV_NONCONN_IND || type == LE_ADV_SCAN_IND)