From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752327AbbKBGie (ORCPT ); Mon, 2 Nov 2015 01:38:34 -0500 Received: from us01smtprelay-2.synopsys.com ([198.182.47.9]:44730 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751356AbbKBGib convert rfc822-to-8bit (ORCPT ); Mon, 2 Nov 2015 01:38:31 -0500 From: Vineet Gupta To: Noam Camus , "linux-snps-arc@lists.infradead.org" CC: "cmetcalf@ezchip.com" , "gilf@ezchip.com" , "talz@ezchip.com" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v1 08/20] ARC: Use res_service as entry point for secondaries Thread-Topic: [PATCH v1 08/20] ARC: Use res_service as entry point for secondaries Thread-Index: AQHRE97gQslSI1M/XE2+/VcwOdQAcg== Date: Mon, 2 Nov 2015 06:38:27 +0000 Message-ID: References: <1446297327-16298-1-git-send-email-noamc@ezchip.com> <1446297327-16298-9-git-send-email-noamc@ezchip.com> Accept-Language: en-US, en-IN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.12.197.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Saturday 31 October 2015 06:50 PM, Noam Camus wrote: > From: Tal Zilcer > > At cpu_kick() we call res_service which can be implement by each > platform and override gerneric weak definition. > > Signed-off-by: Noam Camus > --- > arch/arc/include/asm/smp.h | 2 +- > arch/arc/kernel/smp.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arc/include/asm/smp.h b/arch/arc/include/asm/smp.h > index 133c867..db05793 100644 > --- a/arch/arc/include/asm/smp.h > +++ b/arch/arc/include/asm/smp.h > @@ -30,7 +30,7 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); > * APIs provided by arch SMP code to rest of arch code > */ > extern void __init smp_init_cpus(void); > -extern void first_lines_of_secondary(void); > +extern void res_service(void); > extern const char *arc_platform_smp_cpuinfo(void); > > /* > diff --git a/arch/arc/kernel/smp.c b/arch/arc/kernel/smp.c > index 946109f..546079f 100644 > --- a/arch/arc/kernel/smp.c > +++ b/arch/arc/kernel/smp.c > @@ -167,7 +167,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle) > > if (plat_smp_ops.cpu_kick) > plat_smp_ops.cpu_kick(cpu, > - (unsigned long)first_lines_of_secondary); > + (unsigned long)res_service); So I recently added the explicit handling of halt-on-reset vs. run-on-reset (for non master cores) This will cause infinite loop for non masters for run-on-reset ? I'd suggest leave this arg alone and use whatever PC is needed inside your kick routine > else > arc_default_smp_cpu_kick(cpu, (unsigned long)NULL); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vineet.Gupta1@synopsys.com (Vineet Gupta) Date: Mon, 2 Nov 2015 06:38:27 +0000 Subject: [PATCH v1 08/20] ARC: Use res_service as entry point for secondaries References: <1446297327-16298-1-git-send-email-noamc@ezchip.com> <1446297327-16298-9-git-send-email-noamc@ezchip.com> List-ID: Message-ID: To: linux-snps-arc@lists.infradead.org On Saturday 31 October 2015 06:50 PM, Noam Camus wrote: > From: Tal Zilcer > > At cpu_kick() we call res_service which can be implement by each > platform and override gerneric weak definition. > > Signed-off-by: Noam Camus > --- > arch/arc/include/asm/smp.h | 2 +- > arch/arc/kernel/smp.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arc/include/asm/smp.h b/arch/arc/include/asm/smp.h > index 133c867..db05793 100644 > --- a/arch/arc/include/asm/smp.h > +++ b/arch/arc/include/asm/smp.h > @@ -30,7 +30,7 @@ extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); > * APIs provided by arch SMP code to rest of arch code > */ > extern void __init smp_init_cpus(void); > -extern void first_lines_of_secondary(void); > +extern void res_service(void); > extern const char *arc_platform_smp_cpuinfo(void); > > /* > diff --git a/arch/arc/kernel/smp.c b/arch/arc/kernel/smp.c > index 946109f..546079f 100644 > --- a/arch/arc/kernel/smp.c > +++ b/arch/arc/kernel/smp.c > @@ -167,7 +167,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle) > > if (plat_smp_ops.cpu_kick) > plat_smp_ops.cpu_kick(cpu, > - (unsigned long)first_lines_of_secondary); > + (unsigned long)res_service); So I recently added the explicit handling of halt-on-reset vs. run-on-reset (for non master cores) This will cause infinite loop for non masters for run-on-reset ? I'd suggest leave this arg alone and use whatever PC is needed inside your kick routine > else > arc_default_smp_cpu_kick(cpu, (unsigned long)NULL); >