From: Dan Carpenter Date: Thu, 3 Apr 2014 07:29:33 +0000 (+0300) Subject: dmaengine: sirf: off by one in of_dma_sirfsoc_xlate() X-Git-Tag: v3.15-rc2~1^2~1 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=f3817e777ca3a089381a5b2370fbb869c3bcce6f;p=linux.git dmaengine: sirf: off by one in of_dma_sirfsoc_xlate() The ">" here should be ">=" or we are one step beyond the end of the sdma->channels[] array. Fixes: 2e041c94628c ('dmaengine: sirf: enable generic dt binding for dma channels') Signed-off-by: Dan Carpenter Acked-by: Barry Song Signed-off-by: Vinod Koul --- diff --git a/drivers/dma/sirf-dma.c b/drivers/dma/sirf-dma.c index a1bd8298d55f..03f7820fa333 100644 --- a/drivers/dma/sirf-dma.c +++ b/drivers/dma/sirf-dma.c @@ -666,7 +666,7 @@ static struct dma_chan *of_dma_sirfsoc_xlate(struct of_phandle_args *dma_spec, struct sirfsoc_dma *sdma = ofdma->of_dma_data; unsigned int request = dma_spec->args[0]; - if (request > SIRFSOC_DMA_CHANNELS) + if (request >= SIRFSOC_DMA_CHANNELS) return NULL; return dma_get_slave_channel(&sdma->channels[request].chan);