fsldma: fix check on potential fdev->chan[] overflow
authorRoel Kluin <roel.kluin@gmail.com>
Fri, 22 May 2009 08:46:52 +0000 (16:46 +0800)
committerLi Yang <leoli@freescale.com>
Fri, 22 May 2009 08:46:52 +0000 (16:46 +0800)
Fix the check of potential array overflow when using corrupted channel
device tree nodes.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Li Yang <leoli@freescale.com>
drivers/dma/fsldma.c

index da8a8ed9e411008d68e14820444695176caa9318..391b1bd7098b922b881d5dc2d59d4fab87b44e5f 100644 (file)
@@ -830,7 +830,7 @@ static int __devinit fsl_dma_chan_probe(struct fsl_dma_device *fdev,
                        new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1);
 
        new_fsl_chan->id = ((new_fsl_chan->reg.start - 0x100) & 0xfff) >> 7;
-       if (new_fsl_chan->id > FSL_DMA_MAX_CHANS_PER_DEVICE) {
+       if (new_fsl_chan->id >= FSL_DMA_MAX_CHANS_PER_DEVICE) {
                dev_err(fdev->dev, "There is no %d channel!\n",
                                new_fsl_chan->id);
                err = -EINVAL;