Author: Julia Lawall <Julia.Lawall@lip6.fr> for_each_compatible_node performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. A simplified version of the semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ expression e; local idexpression n; @@ for_each_compatible_node(n, …) { … when != of_node_put(n) when != e = …