Messages in this thread | | | From | Sudeep Holla <> | Date | Wed, 24 Apr 2019 10:07:12 +0100 | Subject | Re: [PATCH v3 1/3] RISC-V: Add RISC-V specific arch_match_cpu_phys_id |
| |
On Wed, Apr 24, 2019 at 1:03 AM Atish Patra <atish.patra@wdc.com> wrote: > > OF/DT core has a hook for architecture specific logical cpuid to hartid > mapping. By implementing this, we can pass the logical cpu id to cpu > node parsing functions. > > Fix the instances where logical cpuid is expected as an argument in > of_get_cpu_node. >
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
> Signed-off-by: Atish Patra <atish.patra@wdc.com> > --- > arch/riscv/kernel/cpu.c | 3 +-- > arch/riscv/kernel/smp.c | 5 +++++ > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c > index cf2fca12414a..c8d2a3223099 100644 > --- a/arch/riscv/kernel/cpu.c > +++ b/arch/riscv/kernel/cpu.c > @@ -136,8 +136,7 @@ static void c_stop(struct seq_file *m, void *v) > static int c_show(struct seq_file *m, void *v) > { > unsigned long cpu_id = (unsigned long)v - 1; > - struct device_node *node = of_get_cpu_node(cpuid_to_hartid_map(cpu_id), > - NULL);
I assume it work working just fine as you are doing cpu to hartid conversion here and weak implementation of arch_match_cpu_phys_id does direct match.
> + struct device_node *node = of_get_cpu_node(cpu_id, NULL); > const char *compat, *isa, *mmu; > > seq_printf(m, "processor\t: %lu\n", cpu_id); > diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c > index 0c41d07ec281..94db72662f60 100644 > --- a/arch/riscv/kernel/smp.c > +++ b/arch/riscv/kernel/smp.c > @@ -70,6 +70,11 @@ void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out) > for_each_cpu(cpu, in) > cpumask_set_cpu(cpuid_to_hartid_map(cpu), out); > } > + > +bool arch_match_cpu_phys_id(int cpu, u64 phys_id) > +{ > + return phys_id == cpuid_to_hartid_map(cpu); > +} > /* Unsupported */ > int setup_profiling_timer(unsigned int multiplier) > { > -- > 2.21.0 >
| |