FAILED: patch "[PATCH] Bluetooth: hci_qca: Use del_timer_sync() before freeing" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 72ef98445aca568a81c2da050532500a8345ad3a Mon Sep 17 00:00:00 2001
From: Steven Rostedt <[email protected]>
Date: Tue, 5 Apr 2022 10:02:00 -0400
Subject: [PATCH] Bluetooth: hci_qca: Use del_timer_sync() before freeing
While looking at a crash report on a timer list being corrupted, which usually happens when a timer is freed while still active. This is commonly triggered by code calling del_timer() instead of del_timer_sync() just before freeing.
One possible culprit is the hci_qca driver, which does exactly that.
Eric mentioned that wake_retrans_timer could be rearmed via the work queue, so also move the destruction of the work queue before del_timer_sync().
drivers/bluetooth/hci_qca.c +2 -2
@@ -696,9 +696,9 @@ static int qca_close(struct hci_uart *hu)skb_queue_purge (&qca->tx_wait_q);skb_queue_purge (&qca->txq);skb_queue_purge (&qca->rx_memdump_q); -del_timer (&qca->tx_idle_timer); -del_timer (&qca->wake_retrans_timer);destroy_workqueue (qca->workqueue); +del_timer_sync (&qca->tx_idle_timer); +del_timer_sync (&qca->wake_retrans_timer); qca->hu =NULL ;kfree_skb (qca->rx_skb);