Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4969045imu; Mon, 12 Nov 2018 22:00:38 -0800 (PST) X-Google-Smtp-Source: AJdET5eTDlnMO3h006eiB1L46t3Vv/N324oXqwZMih23Vv2mHKabfaGbgaaWScCwWKpqEDdmy1D0 X-Received: by 2002:a63:495b:: with SMTP id y27mr3558773pgk.32.1542088838673; Mon, 12 Nov 2018 22:00:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542088838; cv=none; d=google.com; s=arc-20160816; b=B0Hspu6ILiXiNIPoxY9zb4GawKfctvkfc6s47SFbuB1Vg6CdlJ8i1d1GUFSo2yv8xy j3Mdg5j90YH0ci7rRKGEAp0xB7eVo3V1V9yva2ocJRX0jIpRjvPQF8Mq0VBFCMZ4BI5c FdZtCW6Cvol52ATQVKjaIRBM9Vt62FQgAKepkLKaxoWUGm2dEiWduF8CIpRmT8gmQItr zfOcaAgzrgOoF7SEZbd445yA4pPGgxgila8YkLSqBJlr/FKqO1xbEnAsCPGD6jbUOnkm 6cowKpHCM7jLc1TEhR5Zp2p59sCpW6tWlOspTvt43pSScN/Cbn3Mvg+kk0XX2rI/RaTC cYVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=zlLlu4JImq7AdceRHV6en7c+9a/npbAV3OjEu3rP9xY=; b=NnsyCoN2RdyCkGfFUAHpaf3zUpSNAlu1D6+B5MJDRimyi7GvhtpnHVP0bY4uQ6HvsT m9qSL9kYB2Tlsos0rGMXtyBkuFhab97gw1x5xjP00qp20NZT7OThFqAJ397Rji/n2x6U b27D3fFeJwH2m8K+qDwIr0TMt+XAwsdGfIZjI4OP0aEcih26n5tnozRsl2n0uGTrSCAd 2L6F6MV4dPROkVWEh9j5NfPTJ/S+2B3qsMDtbpZVUHgA1FP52UETznXewrA7M+LAvRw+ HV9bHnJv77w2fjGDtOgaFa3lRTiAcXANdsI/R8AwE0/6SN8J/VyN3AcElZRsK9BPAMpV DyFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=xO33kt1B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p3-v6si20087926plb.14.2018.11.12.22.00.22; Mon, 12 Nov 2018 22:00:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=xO33kt1B; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732698AbeKMPzj (ORCPT + 99 others); Tue, 13 Nov 2018 10:55:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:34170 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732329AbeKMPsD (ORCPT ); Tue, 13 Nov 2018 10:48:03 -0500 Received: from sasha-vm.mshome.net (unknown [64.114.255.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5AB6722512; Tue, 13 Nov 2018 05:51:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542088295; bh=626VPZqTF4I4yzmjBzHfGeNsx97jmzm1Rct1ccTIGVU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xO33kt1BMXg144saAh0ewQ2C2FCHwTrPl5nk8zGG2WvszojmUrYqGP9pdWqlIn+48 idcVc+4hJJ/mpBEOWi+q5xn9/E8FEAjyvI2LUe36Q7EGypVGRKuBbVntW6XX4rE7c+ KaxARUnCOf3tPMhqvDY6xxeTd/j79y2qIjFgMVyE= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Johan Hovold , Stephen Boyd , Sasha Levin , linux-omap@vger.kernel.org, linux-clk@vger.kernel.org Subject: [PATCH AUTOSEL 4.18 32/39] clk: ti: fix OF child-node lookup Date: Tue, 13 Nov 2018 00:50:46 -0500 Message-Id: <20181113055053.78352-32-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113055053.78352-1-sashal@kernel.org> References: <20181113055053.78352-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Johan Hovold [ Upstream commit 00a461cc32ec27fa7bd9c874a7b36b0c6c542c12 ] Fix child-node lookup which by using the wrong OF helper was searching the whole tree depth-first, something which could end up matching an unrelated node. Also fix the related node-reference leaks. Fixes: 5b385a45e001 ("clk: ti: add support for clkctrl aliases") Signed-off-by: Johan Hovold Acked-by: Tero Kristo Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin --- drivers/clk/ti/clk.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c index 7d22e1af2247..27e0979b3158 100644 --- a/drivers/clk/ti/clk.c +++ b/drivers/clk/ti/clk.c @@ -129,7 +129,7 @@ int ti_clk_setup_ll_ops(struct ti_clk_ll_ops *ops) void __init ti_dt_clocks_register(struct ti_dt_clk oclks[]) { struct ti_dt_clk *c; - struct device_node *node; + struct device_node *node, *parent; struct clk *clk; struct of_phandle_args clkspec; char buf[64]; @@ -164,8 +164,12 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[]) continue; node = of_find_node_by_name(NULL, buf); - if (num_args) - node = of_find_node_by_name(node, "clk"); + if (num_args) { + parent = node; + node = of_get_child_by_name(parent, "clk"); + of_node_put(parent); + } + clkspec.np = node; clkspec.args_count = num_args; for (i = 0; i < num_args; i++) { @@ -173,11 +177,12 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[]) if (ret) { pr_warn("Bad tag in %s at %d: %s\n", c->node_name, i, tags[i]); + of_node_put(node); return; } } clk = of_clk_get_from_provider(&clkspec); - + of_node_put(node); if (!IS_ERR(clk)) { c->lk.clk = clk; clkdev_add(&c->lk); -- 2.17.1