*/
if (hdev->le_scan_type == LE_SCAN_PASSIVE) {
struct hci_conn_params *param;
+ struct smp_irk *irk;
if (type == LE_ADV_IND || type == LE_ADV_DIRECT_IND)
check_pending_le_conn(hdev, bdaddr, bdaddr_type);
if (type == LE_ADV_DIRECT_IND)
return;
+ /* Check if we need to convert to identity address */
+ irk = hci_get_irk(hdev, bdaddr, bdaddr_type);
+ if (irk) {
+ bdaddr = &irk->bdaddr;
+ bdaddr_type = irk->addr_type;
+ }
+
+ /* The conn params list only contains identity addresses */
+ if (!hci_is_identity_address(bdaddr, bdaddr_type))
+ return;
+
param = hci_conn_params_lookup(hdev, bdaddr, bdaddr_type);
if (!param || param->auto_connect != HCI_AUTO_CONN_REPORT)
return;