staging: comedi: das16: deschedule timer routine on detach
authorIan Abbott <abbotti@mev.co.uk>
Wed, 29 Oct 2014 17:35:11 +0000 (17:35 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 20:29:31 +0000 (13:29 -0700)
commitab784e5075698ed3b767d5e264a50aab39add209
tree34e61d23a1ade524ddd6017a868254d6a291bb20
parent35438c0011c3a3ba120ad78ea99bf38f009dc736
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>
drivers/staging/comedi/drivers/das16.c