Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6758ddaf authored by Alexandre Belloni's avatar Alexandre Belloni Committed by Vinod Koul
Browse files

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: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent cfc6abc3
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -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