*/
        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;