Bluetooth: hci_sync: Fix accept_list when attempting to suspend
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 5 Jan 2024 15:43:26 +0000 (10:43 -0500)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Wed, 28 Feb 2024 14:42:02 +0000 (09:42 -0500)
During suspend, only wakeable devices can be in acceptlist, so if the
device was previously added it needs to be removed otherwise the device
can end up waking up the system prematurely.

Fixes: 3b42055388c3 ("Bluetooth: hci_sync: Fix attempting to suspend with unfiltered passive scan")
Signed-off-by: Clancy Shang <clancy.shang@quectel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
net/bluetooth/hci_sync.c

index b3141e3f9cf62094266499953fb868d4233980e2..5716345a26dfb757b540137fa7616f4af49d013c 100644 (file)
@@ -2206,8 +2206,11 @@ static int hci_le_add_accept_list_sync(struct hci_dev *hdev,
 
        /* During suspend, only wakeable devices can be in acceptlist */
        if (hdev->suspended &&
-           !(params->flags & HCI_CONN_FLAG_REMOTE_WAKEUP))
+           !(params->flags & HCI_CONN_FLAG_REMOTE_WAKEUP)) {
+               hci_le_del_accept_list_sync(hdev, &params->addr,
+                                           params->addr_type);
                return 0;
+       }
 
        /* Select filter policy to accept all advertising */
        if (*num_entries >= hdev->le_accept_list_size)