Bluetooth: hci_sync: cancel cmd_timer if hci_open failed
authorArchie Pusaka <apusaka@chromium.org>
Thu, 26 Jan 2023 13:36:13 +0000 (16:36 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Feb 2023 07:34:35 +0000 (08:34 +0100)
commit 97dfaf073f5881c624856ef293be307b6166115c upstream.

If a command is already sent, we take care of freeing it, but we
also need to cancel the timeout as well.

Signed-off-by: Archie Pusaka <apusaka@chromium.org>
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@google.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/hci_sync.c

index 67dd4c9..3eec688 100644 (file)
@@ -4703,6 +4703,7 @@ int hci_dev_open_sync(struct hci_dev *hdev)
                        hdev->flush(hdev);
 
                if (hdev->sent_cmd) {
+                       cancel_delayed_work_sync(&hdev->cmd_timer);
                        kfree_skb(hdev->sent_cmd);
                        hdev->sent_cmd = NULL;
                }