| From 46b6eb965a001422d0025cb380da9e61dda5a876 Mon Sep 17 00:00:00 2001 |
| From: Yangtao Li <tiny.windzz@gmail.com> |
| Date: Wed, 21 Nov 2018 07:49:12 -0500 |
| Subject: soc/tegra: Don't leak device tree node reference |
| |
| [ Upstream commit 9eb40fa2cd2d1f6829e7b49bb22692f754b9cfe0 ] |
| |
| of_find_node_by_path() acquires a reference to the node returned by it |
| and that reference needs to be dropped by its caller. soc_is_tegra() |
| doesn't do that, so fix it. |
| |
| Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> |
| Acked-by: Jon Hunter <jonathanh@nvidia.com> |
| [treding: slightly rewrite to avoid inline comparison] |
| Signed-off-by: Thierry Reding <treding@nvidia.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/soc/tegra/common.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/soc/tegra/common.c b/drivers/soc/tegra/common.c |
| index cd8f41351add..7bfb154d6fa5 100644 |
| --- a/drivers/soc/tegra/common.c |
| +++ b/drivers/soc/tegra/common.c |
| @@ -22,11 +22,15 @@ static const struct of_device_id tegra_machine_match[] = { |
| |
| bool soc_is_tegra(void) |
| { |
| + const struct of_device_id *match; |
| struct device_node *root; |
| |
| root = of_find_node_by_path("/"); |
| if (!root) |
| return false; |
| |
| - return of_match_node(tegra_machine_match, root) != NULL; |
| + match = of_match_node(tegra_machine_match, root); |
| + of_node_put(root); |
| + |
| + return match != NULL; |
| } |
| -- |
| 2.19.1 |
| |