Re: [PATCH v2] ARM: dma-mapping: fix potential uninitialized return
From: Nathan Jones <hidden>
Date: 2018-11-29 14:59:22
On Thu, Nov 29, 2018 at 4:51 AM Vladimir Murzin [off-list ref] wrote:
On 11/28/18 6:59 PM, Nathan Jones wrote:quoted
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."ret" is updated indirectly via: if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret)) return ret; I assume that it was found with static analyzer or like this, in such case please, provide output produced by the tool.
No, I had some bad code which was passing a wrong length and receiving the strange error code.
quoted
Fixes: 1655cf8829d8 ("ARM: dma-mapping: Remove traces of NOMMU code")I'll leave it up to Russell. Cheers Vladimirquoted
Signed-off-by: Nathan Jones <redacted> --- arch/arm/mm/dma-mapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)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);
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel