Author: Julia Lawall <julia@diku.dk> Reimplement a call to devm_request_mem_region followed by a call to ioremap or ioremap_nocache by a call to devm_request_and_ioremap. The semantic patch that makes this transformation is as follows: (http://coccinelle.lip6.fr/) // @nm@ expression myname; identifier i; @@ struct platform_driver i = { .driver = { .name = myname } }; @@ expression …
Category: Linux
Dec 27 2011
watchdog: imx2_wdt.c: use devm_request_and_ioremap
Author: Julia Lawall <julia@diku.dk> Reimplement a call to devm_request_mem_region followed by a call to ioremap or ioremap_nocache by a call to devm_request_and_ioremap. The variable res_size is then no longer needed. The semantic patch that makes this transformation is as follows: (http://coccinelle.lip6.fr/) // @nm@ expression myname; identifier i; @@ struct platform_driver i = { .driver = …
Dec 27 2011
drivers/gpio/gpio-tegra.c: use devm_request_and_ioremap
Author: Julia Lawall <julia@diku.dk> Reimplement a call to devm_request_mem_region followed by a call to ioremap or ioremap_nocache by a call to devm_request_and_ioremap. The semantic patch that makes this transformation is as follows: (http://coccinelle.lip6.fr/) // @nm@ expression myname; identifier i; @@ struct platform_driver i = { .driver = { .name = myname } }; @@ expression …
Dec 26 2011
mtd: lantiq-flash: drop iounmap for devm_ allocated data
Author: Julia Lawall <julia@diku.dk> Data allocated with devm_ioremap or devm_ioremap_nocache should not be freed using iounmap, because doing so causes a dangling pointer, and a subsequent double free. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ expression x; @@ ( x = devm_ioremap(…) | x = devm_ioremap_nocache(…) ) @@ expression …
Dec 26 2011
drivers/watchdog/lantiq_wdt.c: drop iounmap for devm_ allocated data
Author: Julia Lawall <julia@diku.dk> Data allocated with devm_ioremap or devm_ioremap_nocache should not be freed using iounmap, because doing so causes a dangling pointer, and a subsequent double free. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ expression x; @@ ( x = devm_ioremap(…) | x = devm_ioremap_nocache(…) ) @@ expression …
Dec 23 2011
arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
Author: Julia Lawall <julia@diku.dk> rmu needs to be freed before leaving the function in an error case. A simplified version of the semantic match that finds the problem is as follows: (http://coccinelle.lip6.fr) // @r exists@ local idexpression x; statement S; identifier f1; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(…); … if (x …
Dec 23 2011
ARM: OMAP2+: arch/arm/mach-omap2/devices.c: introduce missing kfree
Author: Julia Lawall <julia@diku.dk> pdata needs to be freed before leaving the function in an error case. A simplified version of the semantic match that finds the problem is as follows: (http://coccinelle.lip6.fr) // @r exists@ local idexpression x; statement S; identifier f1; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(…); … if (x …
Dec 23 2011
drivers/usb/host/isp1760-if.c: introduce missing kfree
Author: Julia Lawall <julia@diku.dk> drvdata needds to be freed before leaving the function in an error case. A simplified version of the semantic match that finds the problem is as follows: (http://coccinelle.lip6.fr) // @r exists@ local idexpression x; statement S; identifier f1; position p1,p2; expression *ptr != NULL; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(…); … if (x …
Dec 23 2011
xen-gntalloc: introduce missing kfree
Author: Julia Lawall <julia@diku.dk> Error handling code following a kmalloc should free the allocated data. Out_unlock is used on both success and failure, so free vm_priv before jumping to that label. A simplified version of the semantic match that finds the problem is as follows: (http://coccinelle.lip6.fr) // @r exists@ local idexpression x; statement S; identifier …
Dec 23 2011
drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
Author: Julia Lawall <julia@diku.dk> Glue needs to be freed on exiting the function in an error case. Furthermore, pci, which is the first argument to the probe function should not be freed before leaveing the function, as it is reused at the call site. So the free of pci is changed to free glue instead. …