Message ID | 1390470990-16065-1-git-send-email-prabhakar.csengg@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Prabhakar, On 23 January 2014 15:26, Prabhakar Lad <prabhakar.csengg@gmail.com> wrote: > From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> > > In the gen_pool_dma_alloc() the dma pointer can be NULL > and while assigning gen_pool_virt_to_phys(pool, vaddr) to > dma caused the following crash on da850 evm, > [snip] > > Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> > --- > lib/genalloc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/lib/genalloc.c b/lib/genalloc.c > index dda3116..f48163f 100644 > --- a/lib/genalloc.c > +++ b/lib/genalloc.c > @@ -334,7 +334,8 @@ void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size, dma_addr_t *dma) > if (!vaddr) > return NULL; > > - *dma = gen_pool_virt_to_phys(pool, vaddr); > + if (dma) > + *dma = gen_pool_virt_to_phys(pool, vaddr); Wouldn't it be better to return (with error/message) if dma is NULL rather than silently ignore it? > > return (void *)vaddr;
Hi Sachin, On Thu, Jan 23, 2014 at 3:38 PM, Sachin Kamat <sachin.kamat@linaro.org> wrote: > Hi Prabhakar, > > On 23 January 2014 15:26, Prabhakar Lad <prabhakar.csengg@gmail.com> wrote: >> From: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> >> >> In the gen_pool_dma_alloc() the dma pointer can be NULL >> and while assigning gen_pool_virt_to_phys(pool, vaddr) to >> dma caused the following crash on da850 evm, >> > [snip] >> >> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> >> --- >> lib/genalloc.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/lib/genalloc.c b/lib/genalloc.c >> index dda3116..f48163f 100644 >> --- a/lib/genalloc.c >> +++ b/lib/genalloc.c >> @@ -334,7 +334,8 @@ void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size, dma_addr_t *dma) >> if (!vaddr) >> return NULL; >> >> - *dma = gen_pool_virt_to_phys(pool, vaddr); >> + if (dma) >> + *dma = gen_pool_virt_to_phys(pool, vaddr); > > Wouldn't it be better to return (with error/message) if dma is NULL > rather than silently ignore it? > I am not sure if returning here with error is OK, may be just adding a warning message could be OK ? Regards, --Prabhakar Lad
diff --git a/lib/genalloc.c b/lib/genalloc.c index dda3116..f48163f 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c @@ -334,7 +334,8 @@ void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size, dma_addr_t *dma) if (!vaddr) return NULL; - *dma = gen_pool_virt_to_phys(pool, vaddr); + if (dma) + *dma = gen_pool_virt_to_phys(pool, vaddr); return (void *)vaddr; }