diff options
author | Vinod Koul <vinod.koul@intel.com> | 2016-01-06 12:47:47 +0300 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-01-06 12:47:47 +0300 |
commit | d3f1e93ce8e00be19711c35f0c67c54a58aea559 (patch) | |
tree | 58010cdfa4fc473fc0693410b4a444755c4438c9 /drivers/dma/virt-dma.h | |
parent | 7c7b680fa6b0866af2c4876da261bbfe710315d6 (diff) | |
parent | b1d6ab1aa8cdc23b89bcd578ea8d5e3c501a13d9 (diff) |
Merge branch 'topic/async' into for-linus
Diffstat (limited to 'drivers/dma/virt-dma.h')
-rw-r--r-- | drivers/dma/virt-dma.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/dma/virt-dma.h b/drivers/dma/virt-dma.h index bff8c39dd716..d9731ca5e262 100644 --- a/drivers/dma/virt-dma.h +++ b/drivers/dma/virt-dma.h @@ -163,4 +163,17 @@ static inline void vchan_free_chan_resources(struct virt_dma_chan *vc) vchan_dma_desc_free_list(vc, &head); } +/** + * vchan_synchronize() - synchronize callback execution to the current context + * @vc: virtual channel to synchronize + * + * Makes sure that all scheduled or active callbacks have finished running. For + * proper operation the caller has to ensure that no new callbacks are scheduled + * after the invocation of this function started. + */ +static inline void vchan_synchronize(struct virt_dma_chan *vc) +{ + tasklet_kill(&vc->task); +} + #endif |