ARM: dma-mapping: fix error path for memory allocation failure
authorMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 27 Jul 2012 15:12:50 +0000 (17:12 +0200)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 2 Mar 2013 20:11:33 +0000 (22:11 +0200)
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>
arch/arm/mm/dma-mapping.c

index 3338d80..03109bc 100644 (file)
@@ -1090,7 +1090,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)