[PATCH] ARM: DT/kernel: fix arch_match_cpu_phys_id to avoid erroneous match
Mark Rutland
mark.rutland at arm.com
Tue Jan 7 11:58:15 EST 2014
Hi,
I was just looking in devtree.c and I noticed this seems to have fallen
by the wayside. Given that this fixes a possible bug and there have been
no negative comments, I think it's good for mainline.
Could you place this in the patch system, assuming Russell has no
comments?
Cheers,
Mark.
On Mon, Oct 21, 2013 at 01:30:32PM +0100, Sudeep KarkadaNagesha wrote:
> From: Sudeep KarkadaNagesha <sudeep.karkadanagesha at arm.com>
>
> The MPIDR contains specific bitfields(MPIDR.Aff{2..0}) which uniquely
> identify a CPU, in addition to some non-identifying information and
> reserved bits. The ARM cpu binding defines the 'reg' property to only
> contain the affinity bits, and any cpu nodes with other bits set in
> their 'reg' entry are skipped.
>
> As such it is not necessary to mask the phys_id with MPIDR_HWID_BITMASK,
> and doing so could lead to matching erroneous CPU nodes in the device
> tree. This patch removes the masking of the physical identifier.
>
> Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha at arm.com>
> Acked-by: Mark Rutland <mark.rutland at arm.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> ---
> arch/arm/kernel/devtree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
> index f35906b..41960fb 100644
> --- a/arch/arm/kernel/devtree.c
> +++ b/arch/arm/kernel/devtree.c
> @@ -171,7 +171,7 @@ void __init arm_dt_init_cpu_maps(void)
>
> bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
> {
> - return (phys_id & MPIDR_HWID_BITMASK) == cpu_logical_map(cpu);
> + return phys_id == cpu_logical_map(cpu);
> }
>
> /**
> --
> 1.8.1.2
>
More information about the linux-arm-kernel
mailing list