Catégorie : Coccinelle

drivers/char/hvc_console.c: adjust call to put_tty_driver

Author: Julia Lawall <julia@diku.dk> The call to put_tty_driver is out of place and is applied to the wrong argument. The function enclosing the patched code calls alloc_tty_driver and stores the result in drv. Subsequently, there are two occurrences of error handling code, one making a goto to put_tty and one making a goto to stop_thread. …

Lire la suite

drivers/serial/crisv10.c: add missing put_tty_driver

Author: Julia Lawall <julia@diku.dk> alloc_tty_driver is called at the beginning of the function containing the lines of code shown in the patch. Thus, put_tty_driver is needed before returning in the error handling code. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @nr exists@ local idexpression x; expression E,f; position p1,p2,p3; identifier …

Lire la suite

[S390] cio: Correct use of ! and &

Author: Julia Lawall <julia@diku.dk> In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way. In particular, the result of !scsw_stctl(&request->irb.scsw) & SCSW_STCTL_STATUS_PEND is always just !scsw_stctl(&request->irb.scsw). The semantic patch that makes …

Lire la suite

RDMA/ucma: Test ucma_alloc_multicast() return against NULL, not with IS_ERR()

Author: Julien Brunel <brunel@diku.dk> In case of error, the function ucma_alloc_multicast() returns a NULL pointer, but never returns an ERR pointer. So after a call to this function, an IS_ERR test should be replaced by a NULL test. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @match bad_is_err_test@ expression x, E; …

Lire la suite

UBI: fix IS_ERR test

Author: Julien Brunel <brunel@diku.dk> In case of error, the function add_volume returns an ERR pointer. The result of IS_ERR, which is supposed to be used in a test as it is, is here checked to be less than zero, which seems odd. We suggest to replace this test by a simple IS_ERR test. A simplified …

Lire la suite

ALSA: sound/soc/at32: Useless NULL test

Author: Julien Brunel <brunel@diku.dk> The test (ssc != NULL) can only be reached if the call to the function ssc_request, the result of which ssc is assigned, succeeds. Moreover, two statements assign NULL to ssc just before a return, which is useless since it is a local variable. So, we suggest to delete the test …

Lire la suite

9p: introduce missing kfree

Author: Julia Lawall <julia@diku.dk> Error handling code following a kmalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r exists@ local idexpression x; statement S; expression E; identifier f,l; position p1,p2; expression *ptr != NULL; @@ ( if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(…)) == NULL) S | x@p1 …

Lire la suite

9p: use an IS_ERR test rather than a NULL test

Author: Julien Brunel <brunel@diku.dk> In case of error, the function p9_client_walk returns an ERR pointer, but never returns a NULL pointer. So a NULL test that comes after an IS_ERR test should be deleted. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @match_bad_null_test@ expression x, E; statement S1,S2; @@ x = …

Lire la suite

USB: isp1760: Use an IS_ERR test rather than a NULL test

Author: Julien Brunel <brunel@diku.dk> In case of error, the function isp1760_register returns an ERR pointer, but never returns a NULL pointer. So after a call to this function, a NULL test should be replaced by an IS_ERR test. Moreover, we have noticed that: (1) the result of isp1760_register is assigned through the function pci_set_drvdata without …

Lire la suite

drivers/net/wan: Use DIV_ROUND_UP

Author: Julia Lawall <julia@diku.dk> The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) – 1) / (d)) but is perhaps more readable. An extract of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // @haskernel@ @@ #include @depends on haskernel@ expression n,d; @@ ( – (n + d – 1) / …

Lire la suite