mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 23:02:08 +00: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