mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-11-04 08:34:47 +10:00 
			
		
		
		
	dma: at_hdmac: fix invalid remaining bytes detection
Found using smatch: drivers/dma/at_hdmac.c:299 atc_get_bytes_left() warn: unsigned 'atchan->remain_desc' is never less than zero. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
		
							parent
							
								
									cfc6abc3f1
								
							
						
					
					
						commit
						6758ddafad
					
				@ -294,14 +294,16 @@ static int atc_get_bytes_left(struct dma_chan *chan)
 | 
			
		||||
			ret = -EINVAL;
 | 
			
		||||
			goto out;
 | 
			
		||||
		}
 | 
			
		||||
		atchan->remain_desc -= (desc_cur->lli.ctrla & ATC_BTSIZE_MAX)
 | 
			
		||||
						<< (desc_first->tx_width);
 | 
			
		||||
		if (atchan->remain_desc < 0) {
 | 
			
		||||
 | 
			
		||||
		count = (desc_cur->lli.ctrla & ATC_BTSIZE_MAX)
 | 
			
		||||
			<< desc_first->tx_width;
 | 
			
		||||
		if (atchan->remain_desc < count) {
 | 
			
		||||
			ret = -EINVAL;
 | 
			
		||||
			goto out;
 | 
			
		||||
		} else {
 | 
			
		||||
			ret = atchan->remain_desc;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		atchan->remain_desc -= count;
 | 
			
		||||
		ret = atchan->remain_desc;
 | 
			
		||||
	} else {
 | 
			
		||||
		/*
 | 
			
		||||
		 * Get residual bytes when current
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user