Thread (24 messages) flat view 24 messages, 2 authors, 2022-11-24

Re: [patch V3 17/17] Bluetooth: hci_qca: Fix the teardown problem for real

From: Anna-Maria Behnsen <anna-maria@linutronix.de>
Date: 2022-11-24 13:57:23
Also in: linux-bluetooth, lkml

On Wed, 23 Nov 2022, Thomas Gleixner wrote:
While discussing solutions for the teardown problem which results from
circular dependencies between timers and workqueues, where timers schedule
work from their timer callback and workqueues arm the timers from work
items, it was discovered that the recent fix to the QCA code is incorrect.

That commit fixes the obvious problem of using del_timer() instead of
del_timer_sync() and reorders the teardown calls to

   destroy_workqueue(wq);
   del_timer_sync(t);

This makes it less likely to explode, but it's still broken:

   destroy_workqueue(wq);
   /* After this point @wq cannot be touched anymore */

   ---> timer expires
         queue_work(wq) <---- Results in a NULl pointer dereference
The last NIT (for now...): s/NULl/NULL

Thanks,

	Anna-Maria
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help