mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
staging: comedi: das16: deschedule timer routine on detach
The "das16" driver optionally uses a kernel timer and a DMA channel to support asynchronous data acquisition, but currently never calls `del_timer_sync()`. There is some possibility the timer routine could still be scheduled to run when the comedi "detach" handler is run to clean up the device and cause a certain amount of havoc. Avoid that by calling `del_time_sync()` in the comedi "detach" handler `das16_detach()` if the timer was initialized by the "attach" handler `das16_attach()`. Use the timer's `data` member to tell whether it was initialized or not. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
35438c0011
commit
ab784e5075
1 changed files with 2 additions and 0 deletions
|
|
@ -1228,6 +1228,8 @@ static void das16_detach(struct comedi_device *dev)
|
|||
int i;
|
||||
|
||||
if (devpriv) {
|
||||
if (devpriv->timer.data)
|
||||
del_timer_sync(&devpriv->timer);
|
||||
if (dev->iobase)
|
||||
das16_reset(dev);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue