summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-08-31 07:44:00 +0000
committerDavid S. Miller <davem@davemloft.net>2010-09-01 10:57:54 -0700
commitaed5029ead26fe47527d9e9f2052cf56b72543f0 (patch)
tree87a6ffc67a5c6036da86bb1b6388bfe3744d68c2 /block
parent1a9f28c8f94659a70f34f0f2ab12371c0745518d (diff)
downloadop-kernel-dev-aed5029ead26fe47527d9e9f2052cf56b72543f0.zip
op-kernel-dev-aed5029ead26fe47527d9e9f2052cf56b72543f0.tar.gz
drivers/net/can/mscan/mpc5xxx_can.c: Add of_node_put to avoid memory leak
Add a call to of_node_put in the error handling code following a call to of_find_matching_node. This patch also moves the existing call to of_node_put after the call to iounmap in the error handling code, to make it possible to jump to of_node_put without doing iounmap. These appear to be disjoint operations, so the ordering doesn't matter. This patch furthermore changes the -ENODEV result in the error handling code for of_find_matching_node to a return of 0, as found in the error handling code for of_iomap, because the return type of the function is unsigned. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r exists@ local idexpression x; expression E,E1,E2; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node |of_find_node_by_type |of_find_node_with_property |of_find_matching_node |of_parse_phandle )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> ( E2 = x; | of_node_put(x); ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud