Browse Source

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>
Ramax Lo 15 years ago
parent
commit
947a246279
1 changed files with 4 additions and 2 deletions
  1. 4 2
      arch/arm/plat-s3c24xx/dma.c

+ 4 - 2
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];
 		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) {
-				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;
 				goto found;
 			}
 			}
 		}
 		}