summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Jones <nathanj439@gmail.com>2018-12-04 12:05:32 +0300
committerRussell King <rmk+kernel@armlinux.org.uk>2018-12-05 01:38:34 +0300
commitc2a3831df6dc164af66d8d86cf356a90c021b86f (patch)
treed3bbfe10057d1c9c0717a65ff53f815991ad67d5
parent3d0358d0ba048c5afb1385787aaec8fa5ad78fcc (diff)
downloadlinux-c2a3831df6dc164af66d8d86cf356a90c021b86f.tar.xz
ARM: 8816/1: dma-mapping: fix potential uninitialized return
While trying to use the dma_mmap_*() interface, it was noticed that this interface returns strange values when passed an incorrect length. If neither of the if() statements fire then the return value is uninitialized. In the worst case it returns 0 which means the caller will think the function succeeded. Fixes: 1655cf8829d8 ("ARM: dma-mapping: Remove traces of NOMMU code") Signed-off-by: Nathan Jones <nathanj439@gmail.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Acked-by: Vladimir Murzin <vladimir.murzin@arm.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-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 661fe48ab78d..78de138aa66d 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -829,7 +829,7 @@ static int __arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
void *cpu_addr, dma_addr_t dma_addr, size_t size,
unsigned long attrs)
{
- int ret;
+ int ret = -ENXIO;
unsigned long nr_vma_pages = vma_pages(vma);
unsigned long nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
unsigned long pfn = dma_to_pfn(dev, dma_addr);