| From b8a533f3c24b3b8f1fdbefc5ada6a7d5733d63e6 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Nuno=20S=C3=A1?= <nuno.sa@analog.com> |
| Date: Fri, 25 Sep 2020 11:10:45 +0200 |
| Subject: iio: ad7292: Fix of_node refcounting |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Nuno Sá <nuno.sa@analog.com> |
| |
| commit b8a533f3c24b3b8f1fdbefc5ada6a7d5733d63e6 upstream. |
| |
| When returning or breaking early from a |
| `for_each_available_child_of_node()` loop, we need to explicitly call |
| `of_node_put()` on the child node to possibly release the node. |
| |
| Fixes: 506d2e317a0a0 ("iio: adc: Add driver support for AD7292") |
| Signed-off-by: Nuno Sá <nuno.sa@analog.com> |
| Cc: stable@vger.kernel.org |
| Link: https://lore.kernel.org/r/20200925091045.302-2-nuno.sa@analog.com |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/iio/adc/ad7292.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/iio/adc/ad7292.c |
| +++ b/drivers/iio/adc/ad7292.c |
| @@ -310,8 +310,10 @@ static int ad7292_probe(struct spi_devic |
| |
| for_each_available_child_of_node(spi->dev.of_node, child) { |
| diff_channels = of_property_read_bool(child, "diff-channels"); |
| - if (diff_channels) |
| + if (diff_channels) { |
| + of_node_put(child); |
| break; |
| + } |
| } |
| |
| if (diff_channels) { |