The H5 timer should not be rescheduled while we are closing the device, otherwise it's defeating the del_timer_sync() call done in h5_close(). Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> --- drivers/bluetooth/hci_h5.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 0879d64b1caf..d9720c59cffa 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -140,7 +140,12 @@ static void h5_timed_event(unsigned long arg) } if (h5->state != H5_ACTIVE) { - mod_timer(&h5->timer, jiffies + H5_SYNC_TIMEOUT); + /* + * Do not re-schedule the timer if the device is being closed. + */ + if (!test_bit(HCI_UART_CLOSING, &hu->flags)) + mod_timer(&h5->timer, jiffies + H5_SYNC_TIMEOUT); + goto wakeup; } -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html