LinuxTV Patchwork [PATCHv2] media: videobuf2: Return error after allocation failure

login
register
mail settings
Submitter Souptick Joarder
Date Feb. 4, 2019, 3:01 p.m.
Message ID <20190204150142.GA3900@jordon-HP-15-Notebook-PC>
Download mbox | patch
Permalink /patch/54291/
State New
Delegated to: Hans Verkuil
Headers show

Comments

Souptick Joarder - Feb. 4, 2019, 3:01 p.m.
There is no point to continuing assignment after memory allocation
failed, rather throw error immediately.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
v1 -> v2:
	Corrected typo in change log.

 drivers/media/common/videobuf2/videobuf2-vmalloc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Souptick Joarder - Feb. 11, 2019, 2:12 a.m.
On Mon, Feb 4, 2019 at 8:27 PM Souptick Joarder <jrdr.linux@gmail.com> wrote:
>
> There is no point to continuing assignment after memory allocation
> failed, rather throw error immediately.
>
> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>

Any comment on this patch ?

> ---
> v1 -> v2:
>         Corrected typo in change log.
>
>  drivers/media/common/videobuf2/videobuf2-vmalloc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
> index 6dfbd5b..d3f71e2 100644
> --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c
> +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
> @@ -46,16 +46,16 @@ static void *vb2_vmalloc_alloc(struct device *dev, unsigned long attrs,
>
>         buf->size = size;
>         buf->vaddr = vmalloc_user(buf->size);
> -       buf->dma_dir = dma_dir;
> -       buf->handler.refcount = &buf->refcount;
> -       buf->handler.put = vb2_vmalloc_put;
> -       buf->handler.arg = buf;
>
>         if (!buf->vaddr) {
>                 pr_debug("vmalloc of size %ld failed\n", buf->size);
>                 kfree(buf);
>                 return ERR_PTR(-ENOMEM);
>         }
> +       buf->dma_dir = dma_dir;
> +       buf->handler.refcount = &buf->refcount;
> +       buf->handler.put = vb2_vmalloc_put;
> +       buf->handler.arg = buf;
>
>         refcount_set(&buf->refcount, 1);
>         return buf;
> --
> 1.9.1
>

Patch

diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
index 6dfbd5b..d3f71e2 100644
--- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c
+++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
@@ -46,16 +46,16 @@  static void *vb2_vmalloc_alloc(struct device *dev, unsigned long attrs,
 
 	buf->size = size;
 	buf->vaddr = vmalloc_user(buf->size);
-	buf->dma_dir = dma_dir;
-	buf->handler.refcount = &buf->refcount;
-	buf->handler.put = vb2_vmalloc_put;
-	buf->handler.arg = buf;
 
 	if (!buf->vaddr) {
 		pr_debug("vmalloc of size %ld failed\n", buf->size);
 		kfree(buf);
 		return ERR_PTR(-ENOMEM);
 	}
+	buf->dma_dir = dma_dir;
+	buf->handler.refcount = &buf->refcount;
+	buf->handler.put = vb2_vmalloc_put;
+	buf->handler.arg = buf;
 
 	refcount_set(&buf->refcount, 1);
 	return buf;

Privacy Policy