On 08/31/2010 09:10 PM, Wolfram Sang wrote: > On Tue, Aug 31, 2010 at 07:44:00PM +0200, Julia Lawall wrote: >> 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@xxxxxxx> > > Reviewed-by: Wolfram Sang <w.sang@xxxxxxxxxxxxxx> Acked-by: Wolfgang Grandegger <wg@xxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html