linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm: nouveau: fix nvbe leakage
@ 2013-10-07 22:14 Geyslan G. Bem
  2013-10-07 22:35 ` Ben Skeggs
  0 siblings, 1 reply; 6+ messages in thread
From: Geyslan G. Bem @ 2013-10-07 22:14 UTC (permalink / raw)
  To: airlied, bskeggs, dri-devel; +Cc: linux-kernel, kernel-br, Geyslan G. Bem

Free memory allocated to nvbe when returning NULL.

Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
---
 drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
index 0843ebc..af8b66d 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
 		nvbe->ttm.ttm.func = &nv50_sgdma_backend;
 
 	if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page))
+	{
+		kfree(nvbe);
 		return NULL;
+	}
 	return &nvbe->ttm.ttm;
 }
-- 
1.8.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm: nouveau: fix nvbe leakage
  2013-10-07 22:14 [PATCH] drm: nouveau: fix nvbe leakage Geyslan G. Bem
@ 2013-10-07 22:35 ` Ben Skeggs
  2013-10-07 23:36   ` Felipe Pena
  0 siblings, 1 reply; 6+ messages in thread
From: Ben Skeggs @ 2013-10-07 22:35 UTC (permalink / raw)
  To: Geyslan G. Bem; +Cc: airlied, dri-devel, linux-kernel, kernel-br

----- Original Message -----
> From: "Geyslan G. Bem" <geyslan@gmail.com>
> To: airlied@linux.ie, bskeggs@redhat.com, dri-devel@lists.freedesktop.org
> Cc: linux-kernel@vger.kernel.org, kernel-br@googlegroups.com, "Geyslan G. Bem" <geyslan@gmail.com>
> Sent: Tuesday, 8 October, 2013 8:14:26 AM
> Subject: [PATCH] drm: nouveau: fix nvbe leakage
> 
> Free memory allocated to nvbe when returning NULL.
> 
> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
NACK.  ttm_dma_tt_init() calls the destructor if it fails, which frees the memory.

Ben.

> ---
>  drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> index 0843ebc..af8b66d 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> @@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
>  		nvbe->ttm.ttm.func = &nv50_sgdma_backend;
>  
>  	if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page))
> +	{
> +		kfree(nvbe);
>  		return NULL;
> +	}
>  	return &nvbe->ttm.ttm;
>  }
> --
> 1.8.4
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm: nouveau: fix nvbe leakage
  2013-10-07 22:35 ` Ben Skeggs
@ 2013-10-07 23:36   ` Felipe Pena
  2013-10-07 23:39     ` Geyslan Gregório Bem
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Pena @ 2013-10-07 23:36 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: Geyslan G. Bem, airlied, dri-devel, linux-kernel, kernel-br

Hi,

On Mon, Oct 7, 2013 at 7:35 PM, Ben Skeggs <bskeggs@redhat.com> wrote:
> ----- Original Message -----
>> From: "Geyslan G. Bem" <geyslan@gmail.com>
>> To: airlied@linux.ie, bskeggs@redhat.com, dri-devel@lists.freedesktop.org
>> Cc: linux-kernel@vger.kernel.org, kernel-br@googlegroups.com, "Geyslan G. Bem" <geyslan@gmail.com>
>> Sent: Tuesday, 8 October, 2013 8:14:26 AM
>> Subject: [PATCH] drm: nouveau: fix nvbe leakage
>>
>> Free memory allocated to nvbe when returning NULL.
>>
>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
> NACK.  ttm_dma_tt_init() calls the destructor if it fails, which frees the memory.
>
> Ben.
>

But ttm_tt_destroy() just handles the ttm_tt part from nvbe, the nvbe
pointer itself is not being free'd.

>> ---
>>  drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> index 0843ebc..af8b66d 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> @@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
>>               nvbe->ttm.ttm.func = &nv50_sgdma_backend;
>>
>>       if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page))
>> +     {
>> +             kfree(nvbe);
>>               return NULL;
>> +     }
>>       return &nvbe->ttm.ttm;
>>  }
>> --
>> 1.8.4
>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



-- 
Regards,
Felipe Pena

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm: nouveau: fix nvbe leakage
  2013-10-07 23:36   ` Felipe Pena
@ 2013-10-07 23:39     ` Geyslan Gregório Bem
  2013-10-08  1:34       ` Ben Skeggs
  0 siblings, 1 reply; 6+ messages in thread
From: Geyslan Gregório Bem @ 2013-10-07 23:39 UTC (permalink / raw)
  To: Felipe Pena; +Cc: Ben Skeggs, airlied, dri-devel, linux-kernel, kernel-br

Felipe, thank you too.

I realized this after a code review.

Ben, what do you think?

Geyslan Gregório Bem
hackingbits.com


2013/10/7 Felipe Pena <felipensp@gmail.com>:
> Hi,
>
> On Mon, Oct 7, 2013 at 7:35 PM, Ben Skeggs <bskeggs@redhat.com> wrote:
>> ----- Original Message -----
>>> From: "Geyslan G. Bem" <geyslan@gmail.com>
>>> To: airlied@linux.ie, bskeggs@redhat.com, dri-devel@lists.freedesktop.org
>>> Cc: linux-kernel@vger.kernel.org, kernel-br@googlegroups.com, "Geyslan G. Bem" <geyslan@gmail.com>
>>> Sent: Tuesday, 8 October, 2013 8:14:26 AM
>>> Subject: [PATCH] drm: nouveau: fix nvbe leakage
>>>
>>> Free memory allocated to nvbe when returning NULL.
>>>
>>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
>> NACK.  ttm_dma_tt_init() calls the destructor if it fails, which frees the memory.
>>
>> Ben.
>>
>
> But ttm_tt_destroy() just handles the ttm_tt part from nvbe, the nvbe
> pointer itself is not being free'd.
>
>>> ---
>>>  drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>>> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>>> index 0843ebc..af8b66d 100644
>>> --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>>> +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>>> @@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
>>>               nvbe->ttm.ttm.func = &nv50_sgdma_backend;
>>>
>>>       if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags, dummy_read_page))
>>> +     {
>>> +             kfree(nvbe);
>>>               return NULL;
>>> +     }
>>>       return &nvbe->ttm.ttm;
>>>  }
>>> --
>>> 1.8.4
>>>
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>
>
>
> --
> Regards,
> Felipe Pena

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm: nouveau: fix nvbe leakage
  2013-10-07 23:39     ` Geyslan Gregório Bem
@ 2013-10-08  1:34       ` Ben Skeggs
  2013-10-08  9:15         ` Geyslan Gregório Bem
  0 siblings, 1 reply; 6+ messages in thread
From: Ben Skeggs @ 2013-10-08  1:34 UTC (permalink / raw)
  To: Geyslan Gregório Bem
  Cc: Felipe Pena, airlied, dri-devel, linux-kernel, kernel-br

----- Original Message -----
> From: "Geyslan Gregório Bem" <geyslan@gmail.com>
> To: "Felipe Pena" <felipensp@gmail.com>
> Cc: "Ben Skeggs" <bskeggs@redhat.com>, airlied@linux.ie, dri-devel@lists.freedesktop.org,
> linux-kernel@vger.kernel.org, "kernel-br" <kernel-br@googlegroups.com>
> Sent: Tuesday, 8 October, 2013 9:39:02 AM
> Subject: Re: [PATCH] drm: nouveau: fix nvbe leakage
> 
> Felipe, thank you too.
> 
> I realized this after a code review.
> 
> Ben, what do you think?
> 
> Geyslan Gregório Bem
> hackingbits.com
> 
> 
> 2013/10/7 Felipe Pena <felipensp@gmail.com>:
> > Hi,
> >
> > On Mon, Oct 7, 2013 at 7:35 PM, Ben Skeggs <bskeggs@redhat.com> wrote:
> >> ----- Original Message -----
> >>> From: "Geyslan G. Bem" <geyslan@gmail.com>
> >>> To: airlied@linux.ie, bskeggs@redhat.com, dri-devel@lists.freedesktop.org
> >>> Cc: linux-kernel@vger.kernel.org, kernel-br@googlegroups.com, "Geyslan G.
> >>> Bem" <geyslan@gmail.com>
> >>> Sent: Tuesday, 8 October, 2013 8:14:26 AM
> >>> Subject: [PATCH] drm: nouveau: fix nvbe leakage
> >>>
> >>> Free memory allocated to nvbe when returning NULL.
> >>>
> >>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
> >> NACK.  ttm_dma_tt_init() calls the destructor if it fails, which frees the
> >> memory.
> >>
> >> Ben.
> >>
> >
> > But ttm_tt_destroy() just handles the ttm_tt part from nvbe, the nvbe
> > pointer itself is not being free'd.
Actually look at ttm_tt_destroy() and you'll see that right at the end it goes ttm->func->destroy(ttm), which is nouveau_sgdma_destroy().

Ben.
> >
> >>> ---
> >>>  drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
> >>>  1 file changed, 3 insertions(+)
> >>>
> >>> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> >>> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> >>> index 0843ebc..af8b66d 100644
> >>> --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> >>> +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> >>> @@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
> >>>               nvbe->ttm.ttm.func = &nv50_sgdma_backend;
> >>>
> >>>       if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags,
> >>>       dummy_read_page))
> >>> +     {
> >>> +             kfree(nvbe);
> >>>               return NULL;
> >>> +     }
> >>>       return &nvbe->ttm.ttm;
> >>>  }
> >>> --
> >>> 1.8.4
> >>>
> >>>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> Please read the FAQ at  http://www.tux.org/lkml/
> >
> >
> >
> > --
> > Regards,
> > Felipe Pena
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm: nouveau: fix nvbe leakage
  2013-10-08  1:34       ` Ben Skeggs
@ 2013-10-08  9:15         ` Geyslan Gregório Bem
  0 siblings, 0 replies; 6+ messages in thread
From: Geyslan Gregório Bem @ 2013-10-08  9:15 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: Felipe Pena, airlied, dri-devel, LKML, kernel-br

Rather, the first member of nvbe is ttm (same address). Got it.

Please, disregard this patch. Thank you.

Geyslan Gregório Bem
hackingbits.com


2013/10/7 Ben Skeggs <bskeggs@redhat.com>:
> ----- Original Message -----
>> From: "Geyslan Gregório Bem" <geyslan@gmail.com>
>> To: "Felipe Pena" <felipensp@gmail.com>
>> Cc: "Ben Skeggs" <bskeggs@redhat.com>, airlied@linux.ie, dri-devel@lists.freedesktop.org,
>> linux-kernel@vger.kernel.org, "kernel-br" <kernel-br@googlegroups.com>
>> Sent: Tuesday, 8 October, 2013 9:39:02 AM
>> Subject: Re: [PATCH] drm: nouveau: fix nvbe leakage
>>
>> Felipe, thank you too.
>>
>> I realized this after a code review.
>>
>> Ben, what do you think?
>>
>> Geyslan Gregório Bem
>> hackingbits.com
>>
>>
>> 2013/10/7 Felipe Pena <felipensp@gmail.com>:
>> > Hi,
>> >
>> > On Mon, Oct 7, 2013 at 7:35 PM, Ben Skeggs <bskeggs@redhat.com> wrote:
>> >> ----- Original Message -----
>> >>> From: "Geyslan G. Bem" <geyslan@gmail.com>
>> >>> To: airlied@linux.ie, bskeggs@redhat.com, dri-devel@lists.freedesktop.org
>> >>> Cc: linux-kernel@vger.kernel.org, kernel-br@googlegroups.com, "Geyslan G.
>> >>> Bem" <geyslan@gmail.com>
>> >>> Sent: Tuesday, 8 October, 2013 8:14:26 AM
>> >>> Subject: [PATCH] drm: nouveau: fix nvbe leakage
>> >>>
>> >>> Free memory allocated to nvbe when returning NULL.
>> >>>
>> >>> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
>> >> NACK.  ttm_dma_tt_init() calls the destructor if it fails, which frees the
>> >> memory.
>> >>
>> >> Ben.
>> >>
>> >
>> > But ttm_tt_destroy() just handles the ttm_tt part from nvbe, the nvbe
>> > pointer itself is not being free'd.
> Actually look at ttm_tt_destroy() and you'll see that right at the end it goes ttm->func->destroy(ttm), which is nouveau_sgdma_destroy().
>
> Ben.
>> >
>> >>> ---
>> >>>  drivers/gpu/drm/nouveau/nouveau_sgdma.c | 3 +++
>> >>>  1 file changed, 3 insertions(+)
>> >>>
>> >>> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> >>> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> >>> index 0843ebc..af8b66d 100644
>> >>> --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> >>> +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
>> >>> @@ -105,6 +105,9 @@ nouveau_sgdma_create_ttm(struct ttm_bo_device *bdev,
>> >>>               nvbe->ttm.ttm.func = &nv50_sgdma_backend;
>> >>>
>> >>>       if (ttm_dma_tt_init(&nvbe->ttm, bdev, size, page_flags,
>> >>>       dummy_read_page))
>> >>> +     {
>> >>> +             kfree(nvbe);
>> >>>               return NULL;
>> >>> +     }
>> >>>       return &nvbe->ttm.ttm;
>> >>>  }
>> >>> --
>> >>> 1.8.4
>> >>>
>> >>>
>> >> --
>> >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> >> the body of a message to majordomo@vger.kernel.org
>> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >> Please read the FAQ at  http://www.tux.org/lkml/
>> >
>> >
>> >
>> > --
>> > Regards,
>> > Felipe Pena
>>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-10-08  9:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-07 22:14 [PATCH] drm: nouveau: fix nvbe leakage Geyslan G. Bem
2013-10-07 22:35 ` Ben Skeggs
2013-10-07 23:36   ` Felipe Pena
2013-10-07 23:39     ` Geyslan Gregório Bem
2013-10-08  1:34       ` Ben Skeggs
2013-10-08  9:15         ` Geyslan Gregório Bem

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).