[Bulk] [PATCH] drivers/video/wm8505fb.c: use devm_ functions
Tony Prisk
linux at prisktech.co.nz
Sun Dec 9 18:44:38 EST 2012
On Sun, 2012-12-09 at 19:08 +0100, Julia Lawall wrote:
> From: Julia Lawall <Julia.Lawall at lip6.fr>
>
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
>
> The patch makes some other cleanups. First, the original code used
> devm_kzalloc, but kfree. This would lead to a double free. The problem
> was found using the following semantic match (http://coccinelle.lip6.fr/):
>
> // <smpl>
> @@
> expression x,e;
> @@
> x = devm_kzalloc(...)
> ... when != x = e
> ?-kfree(x,...);
> // </smpl>
>
> The error-handing code of devm_request_and_ioremap does not print any
> warning message, because devm_request_and_ioremap does this.
>
> The call to dma_alloc_coherent is converted to its devm equivalent,
> dmam_alloc_coherent. This implicitly introduces a call to
> dmam_free_coherent, which was completly missing in the original code.
>
> A semicolon is removed at the end of the error-handling code for the call
> to dma_alloc_coherent.
>
> The block of code calling fb_alloc_cmap is moved below the block of code
> calling wm8505fb_set_par, so that the error-handing code of the call to
> wm8505fb_set_par can just return ret. This way there is only one block of
> error-handling code that needs to call fb_dealloc_cmap, and so this is
> moved up to the place where it is needed, eliminating the need for all
> gotos and labels in the function. This was suggested by Tony Prisk.
>
> The initializations of fbi and ret at the beginning of the function are not
> necessary and are removed. The call platform_set_drvdata(pdev, NULL); at
> the end of the function is also removed.
>
> Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
>
> ---
> Only compiled. Not tested.
Thanks Julia,
I will include this with the other patches we have for fbdev. I have
tested this on WM8650 and all appears fine.
Regards
Tony P
More information about the linux-arm-kernel
mailing list