|
@@ -115,8 +115,8 @@ static void txx9aclc_dma_complete(void *arg)
|
|
|
spin_lock_irqsave(&dmadata->dma_lock, flags);
|
|
|
if (dmadata->frag_count >= 0) {
|
|
|
dmadata->dmacount--;
|
|
|
- BUG_ON(dmadata->dmacount < 0);
|
|
|
- tasklet_schedule(&dmadata->tasklet);
|
|
|
+ if (!WARN_ON(dmadata->dmacount < 0))
|
|
|
+ tasklet_schedule(&dmadata->tasklet);
|
|
|
}
|
|
|
spin_unlock_irqrestore(&dmadata->dma_lock, flags);
|
|
|
}
|
|
@@ -181,7 +181,10 @@ static void txx9aclc_dma_tasklet(unsigned long data)
|
|
|
spin_unlock_irqrestore(&dmadata->dma_lock, flags);
|
|
|
return;
|
|
|
}
|
|
|
- BUG_ON(dmadata->dmacount >= NR_DMA_CHAIN);
|
|
|
+ if (WARN_ON(dmadata->dmacount >= NR_DMA_CHAIN)) {
|
|
|
+ spin_unlock_irqrestore(&dmadata->dma_lock, flags);
|
|
|
+ return;
|
|
|
+ }
|
|
|
while (dmadata->dmacount < NR_DMA_CHAIN) {
|
|
|
dmadata->dmacount++;
|
|
|
spin_unlock_irqrestore(&dmadata->dma_lock, flags);
|