Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754584AbdDRPJW (ORCPT ); Tue, 18 Apr 2017 11:09:22 -0400 Received: from mail-io0-f173.google.com ([209.85.223.173]:36660 "EHLO mail-io0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750727AbdDRPJP (ORCPT ); Tue, 18 Apr 2017 11:09:15 -0400 Date: Tue, 18 Apr 2017 09:09:10 -0600 From: Mathieu Poirier To: Leo Yan Cc: Jonathan Corbet , Rob Herring , Mark Rutland , Wei Xu , Catalin Marinas , Will Deacon , Andy Gross , David Brown , Suzuki K Poulose , Stephen Boyd , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, Mike Leach , Sudeep Holla Subject: Re: [PATCH v6 3/8] coresight: of_get_coresight_platform_data: Add missing of_node_put Message-ID: <20170418150910.GA22806@linaro.org> References: <1491485461-22800-1-git-send-email-leo.yan@linaro.org> <1491485461-22800-4-git-send-email-leo.yan@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1491485461-22800-4-git-send-email-leo.yan@linaro.org> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2182 Lines: 64 On Thu, Apr 06, 2017 at 09:30:56PM +0800, Leo Yan wrote: > From: Suzuki K Poulose > > The of_get_coresight_platform_data iterates over the possible CPU nodes > to find a given cpu phandle. However it does not drop the reference > to the node pointer returned by the of_get_coresight_platform_data. > > This patch also introduces another minor fix is to use > of_cpu_device_node_get() to replace of_get_cpu_node(). > > Cc: Mathieu Poirier > Signed-off-by: Suzuki K Poulose > [Leo: minor tweaks for of_get_coresight_platform_data] > Signed-off-by: Leo Yan Suzuki sent a Reviewed-by for this, it should be added here. > --- > drivers/hwtracing/coresight/of_coresight.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/drivers/hwtracing/coresight/of_coresight.c b/drivers/hwtracing/coresight/of_coresight.c > index 629e031..1a77280 100644 > --- a/drivers/hwtracing/coresight/of_coresight.c > +++ b/drivers/hwtracing/coresight/of_coresight.c > @@ -108,7 +108,8 @@ struct coresight_platform_data *of_get_coresight_platform_data( > struct coresight_platform_data *pdata; > struct of_endpoint endpoint, rendpoint; > struct device *rdev; > - struct device_node *dn; > + bool found; > + struct device_node *dn, *np; > struct device_node *ep = NULL; > struct device_node *rparent = NULL; > struct device_node *rport = NULL; > @@ -175,17 +176,19 @@ struct coresight_platform_data *of_get_coresight_platform_data( > } while (ep); > } > > - /* Affinity defaults to CPU0 */ > - pdata->cpu = 0; > dn = of_parse_phandle(node, "cpu", 0); > - for (cpu = 0; dn && cpu < nr_cpu_ids; cpu++) { > - if (dn == of_get_cpu_node(cpu, NULL)) { > - pdata->cpu = cpu; > + for_each_possible_cpu(cpu) { > + np = of_cpu_device_node_get(cpu); > + found = (dn == np); > + of_node_put(np); > + if (found) > break; > - } > } > of_node_put(dn); > > + /* Affinity to CPU0 if no cpu nodes are found */ > + pdata->cpu = found ? cpu : 0; > + > return pdata; > } > EXPORT_SYMBOL_GPL(of_get_coresight_platform_data); > -- > 2.7.4 >