[ added dri-devel ML to cc: ]
On Tuesday, September 12, 2017 07:39:30 AM Christophe JAILLET wrote:
If 'dmam_alloc_attrs()' fails, we must go through the error handling code, as done elsewhere in this function. Otherwise, there is a resource leak.
Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr
I'm also puzzled by the 'framebuffer_alloc()' call a few lines above. 'ret' is known to be 0 at this point. I guess that -ENOMEM should also be returned.
Yes, moreover the "failed:" error path is incomplete (please take a look at au1200fb_drv_remove() for comparison) and needs to be fixed.
Could you please take care of it?
drivers/video/fbdev/au1200fb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index 5f04b4096c42..99d6cfb168b5 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -1701,7 +1701,8 @@ static int au1200fb_drv_probe(struct platform_device *dev) if (!fbdev->fb_mem) { print_err("fail to allocate frambuffer (size: %dK))", fbdev->fb_len / 1024);
return -ENOMEM;
ret = -ENOMEM;
goto failed;
}
/*
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
Le 12/10/2017 à 18:25, Bartlomiej Zolnierkiewicz a écrit :
[ added dri-devel ML to cc: ]
On Tuesday, September 12, 2017 07:39:30 AM Christophe JAILLET wrote:
If 'dmam_alloc_attrs()' fails, we must go through the error handling code, as done elsewhere in this function. Otherwise, there is a resource leak.
Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr
I'm also puzzled by the 'framebuffer_alloc()' call a few lines above. 'ret' is known to be 0 at this point. I guess that -ENOMEM should also be returned.
Yes, moreover the "failed:" error path is incomplete (please take a look at au1200fb_drv_remove() for comparison) and needs to be fixed.
Could you please take care of it?
I will try, but be indulgent :)
My understanding of the code is that they are several issues all related to this error handling path (double free, missing memory release, invalid irq release...) I will try to sort it out, but my first tries will likely be incomplete and/or broken.
CJ
dri-devel@lists.freedesktop.org