Re: WARNING in delayed_work_timer_fn

From: Tejun Heo

Date: Mon Jun 29 2026 - 14:53:14 EST


Hello,

> workqueue: cannot queue hci_conn_timeout on wq hci4
> WARNING: kernel/workqueue.c:2271 at __queue_work+0xd2b/0xff0

conn->disc_work (hci_conn_timeout) is a delayed work item queued on
hdev->workqueue. Its timer expires after the workqueue has started being
torn down, so __queue_work() refuses to queue it and warns.

Arguably this is a shortcoming in workqueue, but as it stands a delayed work
item has to be canceled explicitly before the workqueue it's queued on is
destroyed. disc_work needs to be canceled on the Bluetooth side before
hdev->workqueue is torn down.

Thanks.

--
tejun