@@ -2533,6 +2533,7 @@ static u8 hci_update_accept_list_sync(struct hci_dev *hdev)
struct bdaddr_list *b, *t;
u8 num_entries = 0;
bool pend_conn, pend_report;
+ struct hci_conn_params *conn_params;
u8 filter_policy;
size_t i, n;
int err;
@@ -2585,6 +2586,15 @@ static u8 hci_update_accept_list_sync(struct hci_dev *hdev)
continue;
}
+ conn_params = hci_conn_params_lookup(hdev, &b->bdaddr, b->bdaddr_type);
+ /* During suspend, only wakeable devices can be in acceptlist */
+ if (conn_params && hdev->suspended &&
+ !(conn_params->flags & HCI_CONN_FLAG_REMOTE_WAKEUP)) {
+ hci_le_del_accept_list_sync(hdev, &b->bdaddr,
+ b->bdaddr_type);
+ continue;
+ }
+
num_entries++;
}