diff options
Diffstat (limited to 'drivers/dma/cppi41.c')
| -rw-r--r-- | drivers/dma/cppi41.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/dma/cppi41.c b/drivers/dma/cppi41.c index c18aebf7d5aa..d028f36ae655 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -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;  | 
