diff mbox

drm/radeon: add a check for allocation failure

Message ID 20140807152736.GA10299@mwanda (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter Aug. 7, 2014, 3:27 p.m. UTC
We can easily return -ENOMEM here if kzalloc() fails.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Comments

Alex Deucher Aug. 7, 2014, 3:31 p.m. UTC | #1
On Thu, Aug 7, 2014 at 11:27 AM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> We can easily return -ENOMEM here if kzalloc() fails.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
> index ccae4d9..d15d987 100644
> --- a/drivers/gpu/drm/radeon/radeon_vm.c
> +++ b/drivers/gpu/drm/radeon/radeon_vm.c
> @@ -483,6 +483,8 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
>                         /* add a clone of the bo_va to clear the old address */
>                         struct radeon_bo_va *tmp;
>                         tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
> +                       if (!tmp)
> +                               return -ENOMEM;

We need to drop the lock here too.  I'll apply and fix it up.  Thanks!

Alex

>                         tmp->it.start = bo_va->it.start;
>                         tmp->it.last = bo_va->it.last;
>                         tmp->vm = vm;
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Christian König Aug. 7, 2014, 3:33 p.m. UTC | #2
I'm 100% sure that I've fixed that as well with a follow up patch. Looks 
like that one didn't made it into 3.17

Christian.

Am 07.08.2014 um 17:31 schrieb Alex Deucher:
> On Thu, Aug 7, 2014 at 11:27 AM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
>> We can easily return -ENOMEM here if kzalloc() fails.
>>
>> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
>> index ccae4d9..d15d987 100644
>> --- a/drivers/gpu/drm/radeon/radeon_vm.c
>> +++ b/drivers/gpu/drm/radeon/radeon_vm.c
>> @@ -483,6 +483,8 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
>>                          /* add a clone of the bo_va to clear the old address */
>>                          struct radeon_bo_va *tmp;
>>                          tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
>> +                       if (!tmp)
>> +                               return -ENOMEM;
> We need to drop the lock here too.  I'll apply and fix it up.  Thanks!
>
> Alex
>
>>                          tmp->it.start = bo_va->it.start;
>>                          tmp->it.last = bo_va->it.last;
>>                          tmp->vm = vm;
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Dan Carpenter Aug. 7, 2014, 3:56 p.m. UTC | #3
On Thu, Aug 07, 2014 at 11:31:15AM -0400, Alex Deucher wrote:
> On Thu, Aug 7, 2014 at 11:27 AM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > We can easily return -ENOMEM here if kzalloc() fails.
> >
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
> > index ccae4d9..d15d987 100644
> > --- a/drivers/gpu/drm/radeon/radeon_vm.c
> > +++ b/drivers/gpu/drm/radeon/radeon_vm.c
> > @@ -483,6 +483,8 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
> >                         /* add a clone of the bo_va to clear the old address */
> >                         struct radeon_bo_va *tmp;
> >                         tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
> > +                       if (!tmp)
> > +                               return -ENOMEM;
> 
> We need to drop the lock here too.  I'll apply and fix it up.  Thanks!
> 

Gar.  I'm sorry.  I thought it looked easier than it was.

Also I really should have caught that in my qc.  :/  I'm not sure what
happened.

regards,
dan carpenter
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index ccae4d9..d15d987 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -483,6 +483,8 @@  int radeon_vm_bo_set_addr(struct radeon_device *rdev,
 			/* add a clone of the bo_va to clear the old address */
 			struct radeon_bo_va *tmp;
 			tmp = kzalloc(sizeof(struct radeon_bo_va), GFP_KERNEL);
+			if (!tmp)
+				return -ENOMEM;
 			tmp->it.start = bo_va->it.start;
 			tmp->it.last = bo_va->it.last;
 			tmp->vm = vm;