Make sure no timer callback is running before freeing the datastructure which contains it. Signed-off-by: Thomas Gleixner Cc: Marcel Holtmann Cc: bt --- drivers/bluetooth/hci_bcsp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: tip/drivers/bluetooth/hci_bcsp.c =================================================================== --- tip.orig/drivers/bluetooth/hci_bcsp.c +++ tip/drivers/bluetooth/hci_bcsp.c @@ -722,7 +722,7 @@ static int bcsp_close(struct hci_uart *h skb_queue_purge(&bcsp->unack); skb_queue_purge(&bcsp->rel); skb_queue_purge(&bcsp->unrel); - del_timer(&bcsp->tbcsp); + del_timer_sync(&bcsp->tbcsp); kfree(bcsp); return 0;