diff options
author | Yong Wang <yong.y.wang@linux.intel.com> | 2010-08-04 22:40:08 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2010-08-05 01:09:17 -0400 |
commit | b0ebeb9c09cb5b84bb2f33927c84c7648845fcec (patch) | |
tree | 3ebb434421ef49abe2bda85840db2834391fcbba /drivers/dma/at_hdmac.c | |
parent | 61cd2203769a2bf35d41f8682f6ef865fe2d23ff (diff) |
DMAENGINE: at_hdmac: locking fixlet
atc_chain_complete shall be called with atchan->lock held
and bh disabled.
Signed-off-by: Yong Wang <yong.y.wang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma/at_hdmac.c')
-rw-r--r-- | drivers/dma/at_hdmac.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index bd5250e8c00c..646f6d6809f5 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c | |||
@@ -790,12 +790,12 @@ static int atc_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, | |||
790 | list_splice_init(&atchan->queue, &list); | 790 | list_splice_init(&atchan->queue, &list); |
791 | list_splice_init(&atchan->active_list, &list); | 791 | list_splice_init(&atchan->active_list, &list); |
792 | 792 | ||
793 | spin_unlock_bh(&atchan->lock); | ||
794 | |||
795 | /* Flush all pending and queued descriptors */ | 793 | /* Flush all pending and queued descriptors */ |
796 | list_for_each_entry_safe(desc, _desc, &list, desc_node) | 794 | list_for_each_entry_safe(desc, _desc, &list, desc_node) |
797 | atc_chain_complete(atchan, desc); | 795 | atc_chain_complete(atchan, desc); |
798 | 796 | ||
797 | spin_unlock_bh(&atchan->lock); | ||
798 | |||
799 | return 0; | 799 | return 0; |
800 | } | 800 | } |
801 | 801 | ||