Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux.git] / drivers / dma / cppi41.c
index c18aebf7d5aa9a23199b556bc9b54c8b3237253d..d028f36ae655ad56b7afb95a8c4252d096596d5f 100644 (file)
@@ -620,12 +620,15 @@ static int cppi41_stop_chan(struct dma_chan *chan)
        u32 desc_phys;
        int ret;
 
+       desc_phys = lower_32_bits(c->desc_phys);
+       desc_num = (desc_phys - cdd->descs_phys) / sizeof(struct cppi41_desc);
+       if (!cdd->chan_busy[desc_num])
+               return 0;
+
        ret = cppi41_tear_down_chan(c);
        if (ret)
                return ret;
 
-       desc_phys = lower_32_bits(c->desc_phys);
-       desc_num = (desc_phys - cdd->descs_phys) / sizeof(struct cppi41_desc);
        WARN_ON(!cdd->chan_busy[desc_num]);
        cdd->chan_busy[desc_num] = NULL;