summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2012-07-27 17:12:50 +0200
committerMarek Szyprowski <m.szyprowski@samsung.com>2012-07-30 12:25:45 +0200
commit9fa8af91f0679f2abbebe1382b937264f3a8b981 (patch)
treead23ecfd24dce5f64b151804d6308413b17257f8
parent50262a4bf38dd70486e9fce2b8235d5ae3e0f627 (diff)
downloadlinux-3.10-9fa8af91f0679f2abbebe1382b937264f3a8b981.tar.gz
linux-3.10-9fa8af91f0679f2abbebe1382b937264f3a8b981.tar.bz2
linux-3.10-9fa8af91f0679f2abbebe1382b937264f3a8b981.zip
ARM: dma-mapping: fix error path for memory allocation failure
This patch fixes incorrect check in error path. When the allocation of first page fails, the kernel ops appears due to accessing -1 element of the pages array. Reported-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
-rw-r--r--arch/arm/mm/dma-mapping.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index a2881c98fb0..cbdeaf4a339 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -961,7 +961,7 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size, gfp_t
return pages;
error:
- while (--i)
+ while (i--)
if (pages[i])
__free_pages(pages[i], 0);
if (array_size <= PAGE_SIZE)