From: Wei Yongjun <weiyongjun1@huawei.com>
Date: Fri, 26 Aug 2016 14:31:50 +0000 (+0000)
Subject: iio: adc: ti-ads1015: add missing of_node_put() in ads1015_get_channels_config_of()
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=943bbe743ce4c2846c41812186411841b0c9d7a1;p=linux.git

iio: adc: ti-ads1015: add missing of_node_put() in ads1015_get_channels_config_of()

When terminating for_each_child_of_node() iteration with
break or return, of_node_put() should be used to prevent
stale device node references from being left behind.

This is detected by Coccinelle semantic patch.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
---

diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c
index 1ef398770a1f2..565e843e20b0d 100644
--- a/drivers/iio/adc/ti-ads1015.c
+++ b/drivers/iio/adc/ti-ads1015.c
@@ -521,6 +521,7 @@ static int ads1015_get_channels_config_of(struct i2c_client *client)
 			if (pga > 6) {
 				dev_err(&client->dev, "invalid gain on %s\n",
 					node->full_name);
+				of_node_put(node);
 				return -EINVAL;
 			}
 		}
@@ -531,6 +532,7 @@ static int ads1015_get_channels_config_of(struct i2c_client *client)
 				dev_err(&client->dev,
 					"invalid data_rate on %s\n",
 					node->full_name);
+				of_node_put(node);
 				return -EINVAL;
 			}
 		}