lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171017161140.GD19711@arm.com>
Date:   Tue, 17 Oct 2017 17:11:40 +0100
From:   Will Deacon <will.deacon@....com>
To:     Mark Rutland <mark.rutland@....com>
Cc:     Suzuki K Poulose <suzuki.poulose@....com>,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
        robh@...nel.org, sudeep.holla@....com, frowand.list@...il.com,
        devicetree@...r.kernel.org, Jonathan.Cameron@...wei.com,
        marc.zyngier@....com, peterz@...radead.org,
        mathieu.poirier@...aro.org, leo.yan@...aro.org,
        Catalin Marinas <catalin.marinas@....com>
Subject: Re: [PATCH v8 5/8] arm64: Use of_cpu_node_to_id helper for CPU
 topology parsing

On Tue, Oct 17, 2017 at 04:24:23PM +0100, Mark Rutland wrote:
> On Tue, Oct 10, 2017 at 11:33:00AM +0100, Suzuki K Poulose wrote:
> > Make use of the new generic helper to convert an of_node of a CPU
> > to the logical CPU id in parsing the topology.
> > 
> > Cc: Catalin Marinas <catalin.marinas@....com>
> > Cc: Leo Yan <leo.yan@...aro.org>
> > Cc: Will Deacon <will.deacon@....com>
> > Cc: Mark Rutland <mark.rutland@....com>
> > Signed-off-by: Suzuki K Poulose <suzuki.poulose@....com>
> 
> This looks sane to me, but it will need an ack from Will or Catalin.
> 
> FWIW:
> 
> Acked-by: Mark Rutland <mark.rutland@....com>
> 
> Thanks,
> Mark.
> 
> > ---
> >  arch/arm64/kernel/topology.c | 16 ++++++----------
> >  1 file changed, 6 insertions(+), 10 deletions(-)
> > 
> > diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c
> > index 8d48b233e6ce..21868530018e 100644
> > --- a/arch/arm64/kernel/topology.c
> > +++ b/arch/arm64/kernel/topology.c
> > @@ -37,18 +37,14 @@ static int __init get_cpu_for_node(struct device_node *node)
> >  	if (!cpu_node)
> >  		return -1;
> >  
> > -	for_each_possible_cpu(cpu) {
> > -		if (of_get_cpu_node(cpu, NULL) == cpu_node) {
> > -			topology_parse_cpu_capacity(cpu_node, cpu);
> > -			of_node_put(cpu_node);
> > -			return cpu;
> > -		}
> > -	}
> > -
> > -	pr_crit("Unable to find CPU node for %pOF\n", cpu_node);
> > +	cpu = of_cpu_node_to_id(cpu_node);
> > +	if (cpu >= 0)
> > +		topology_parse_cpu_capacity(cpu_node, cpu);
> > +	else
> > +		pr_crit("Unable to find CPU node for %pOF\n", cpu_node);
> >  
> >  	of_node_put(cpu_node);

This of_node_put is confusing me. Since of_cpu_node_to_id appears to be
balanced with its use of the node refcount, is this one intended to pair
with the earlier call to of_parse_phandle? If so, does that mainline is
currently broken here because it doesn't drop the refcount twice for the
matching node? Or do we need to return with that held?

Will

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ