aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong Wang <yong.y.wang@linux.intel.com>2010-08-04 22:40:08 -0400
committerDan Williams <dan.j.williams@intel.com>2010-08-05 01:09:17 -0400
commitb0ebeb9c09cb5b84bb2f33927c84c7648845fcec (patch)
tree3ebb434421ef49abe2bda85840db2834391fcbba
parent61cd2203769a2bf35d41f8682f6ef865fe2d23ff (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>
-rw-r--r--drivers/dma/at_hdmac.c4
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