Re: [Bulk] [PATCH] drivers/video/wm8505fb.c: use devm_ functions

From: Tony Prisk
Date: Sun Dec 09 2012 - 18:44:17 EST


On Sun, 2012-12-09 at 19:08 +0100, Julia Lawall wrote:
> From: Julia Lawall <Julia.Lawall@xxxxxxx>
>
> 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@xxxxxxx>
>
> ---
> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/