ARM: S3C24XX: DMA: Use valid index when accessing array
The DMA_CH_VALID bit used in the channel index should be masked out before using it to access the channel array. Signed-off-by: Ramax Lo <ramaxlo@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
parent
93b0d8c6b6
commit
947a246279
@ -1403,11 +1403,13 @@ static struct s3c2410_dma_chan *s3c2410_dma_map_channel(int channel)
|
|||||||
ord = &dma_order->channels[channel];
|
ord = &dma_order->channels[channel];
|
||||||
|
|
||||||
for (ch = 0; ch < dma_channels; ch++) {
|
for (ch = 0; ch < dma_channels; ch++) {
|
||||||
|
int tmp;
|
||||||
if (!is_channel_valid(ord->list[ch]))
|
if (!is_channel_valid(ord->list[ch]))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (s3c2410_chans[ord->list[ch]].in_use == 0) {
|
tmp = ord->list[ch] & ~DMA_CH_VALID;
|
||||||
ch = ord->list[ch] & ~DMA_CH_VALID;
|
if (s3c2410_chans[tmp].in_use == 0) {
|
||||||
|
ch = tmp;
|
||||||
goto found;
|
goto found;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user