Thread (14 messages) 14 messages, 5 authors, 2018-12-04

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
Vladimir
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help