From: Ramax Lo Date: Tue, 8 Dec 2009 15:42:41 +0000 (+0800) Subject: ARM: S3C24XX: DMA: Use valid index when accessing array X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=947a2462792a89b8aa168a1108288e0d0ae36d12;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Ben Dooks --- diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index f65192d5b1d7..f0ea7943ac5a 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c @@ -1403,11 +1403,13 @@ static struct s3c2410_dma_chan *s3c2410_dma_map_channel(int channel) ord = &dma_order->channels[channel]; for (ch = 0; ch < dma_channels; ch++) { + int tmp; if (!is_channel_valid(ord->list[ch])) continue; - if (s3c2410_chans[ord->list[ch]].in_use == 0) { - ch = ord->list[ch] & ~DMA_CH_VALID; + tmp = ord->list[ch] & ~DMA_CH_VALID; + if (s3c2410_chans[tmp].in_use == 0) { + ch = tmp; goto found; } }