aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorIan Abbott <[email protected]>2014-10-29 17:35:12 +0000
committerGreg Kroah-Hartman <[email protected]>2014-10-30 13:29:31 -0700
commit0a43f75ef57fcf20b9637fa49889e6721ceb5ea7 (patch)
treed88b8a8677bb521ae77ce04bc93d794c0c33aa96 /tools/perf/scripts/python
parentab784e5075698ed3b767d5e264a50aab39add209 (diff)
staging: comedi: das16: use spin-lock when setting timer
"das16" sets a timer running in `das16_cmd_exec()` and sets `devpriv->timer_running` to indicate that it is running. The timer expiration routine `das16_timer_interrupt()` checks `devpriv->timer_running` to check whether it needs to reschedule the timer, but this is not synchronized with `das16_cmd_exec()`. Since `das16_cancel()` acquires the `dev->spinlock` spin-lock when clearing `devpriv->timer_running` and removing the timer from the queue, use the same spin-lock in `das16_cmd_exec()` and `das16_timer_interrupt()` around the setting and checking of `devpriv->timer_running`. Since `das16_interrupt()` (called from `das16_timer_interrupt()`) checks whether DMA is enabled in the device while holding `dev->spinlock`, and DMA is enabled by `das16_cmd_exec()` around the time it schedules the timer, enable the DMA in the device while holding the spin-lock. Signed-off-by: Ian Abbott <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions