Device node iterators put the previous value of the index variable, so an explicit put causes a double put. Generated by: scripts/coccinelle/iterators/device_node_continue.cocci CC: Jaghathiswari Rankappagounder Natarajan <jaghu@xxxxxxxxxx> Signed-off-by: Julia Lawall <julia.lawall@xxxxxxx> Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx> --- The patch would not be needed if aspeed_create_type etc perform a second get, beyond the one in the iterator. aspeed-pwm-tacho.c | 3 --- 1 file changed, 3 deletions(-) --- a/drivers/hwmon/aspeed-pwm-tacho.c +++ b/drivers/hwmon/aspeed-pwm-tacho.c @@ -833,21 +833,18 @@ static int aspeed_pwm_tacho_probe(struct type_np = of_get_child_by_name(np, "type_values"); for_each_child_of_node(type_np, child) { aspeed_create_type(child, priv, type_index++); - of_node_put(child); } of_node_put(type_np); pwm_np = of_get_child_by_name(np, "pwm_port"); for_each_child_of_node(pwm_np, child) { aspeed_create_pwm_port(child, priv, pwm_index++, group_index++); - of_node_put(child); } of_node_put(pwm_np); fan_tach_np = of_get_child_by_name(np, "fan_tach_channel"); for_each_child_of_node(fan_tach_np, child) { aspeed_create_fan_tach_channel(&pdev->dev, child, priv, fan_index++, group_index++); - of_node_put(child); } of_node_put(fan_tach_np); of_node_put(np); -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html