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 Accepted
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
>
Souptick Joarder - March 1, 2019, 3:04 a.m.
On Mon, Feb 11, 2019 at 7:42 AM Souptick Joarder <jrdr.linux@gmail.com> wrote:
>
> 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 ?

If no further comment, can we get this patch in queue for 5.1 ?
>
> > ---
> > 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
> >
Hans Verkuil - March 11, 2019, 3:30 p.m.
On 3/1/19 4:04 AM, Souptick Joarder wrote:
> On Mon, Feb 11, 2019 at 7:42 AM Souptick Joarder <jrdr.linux@gmail.com> wrote:
>>
>> 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 ?
> 
> If no further comment, can we get this patch in queue for 5.1 ?

5.1 was too late, but it will certainly go into 5.2.

Regards,

	Hans

>>
>>> ---
>>> 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
>>>
Souptick Joarder - March 11, 2019, 3:31 p.m.
On Mon, Mar 11, 2019 at 9:00 PM Hans Verkuil <hverkuil@xs4all.nl> wrote:
>
> On 3/1/19 4:04 AM, Souptick Joarder wrote:
> > On Mon, Feb 11, 2019 at 7:42 AM Souptick Joarder <jrdr.linux@gmail.com> wrote:
> >>
> >> 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 ?
> >
> > If no further comment, can we get this patch in queue for 5.1 ?
>
> 5.1 was too late, but it will certainly go into 5.2.

Thanks.
>
> Regards,
>
>         Hans
>
> >>
> >>> ---
> >>> 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