From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932527Ab3DYOmp (ORCPT ); Thu, 25 Apr 2013 10:42:45 -0400 Received: from mail-qc0-f170.google.com ([209.85.216.170]:59689 "EHLO mail-qc0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756916Ab3DYOmo (ORCPT ); Thu, 25 Apr 2013 10:42:44 -0400 Date: Thu, 25 Apr 2013 10:42:41 -0400 (EDT) From: Nicolas Pitre To: Will Deacon cc: Stefano Stabellini , "xen-devel@lists.xensource.com" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "arnd@arndb.de" , "rob.herring@calxeda.com" , "linux@arm.linux.org.uk" , "olof@lixom.net" , Jon Medhurst Subject: Re: [PATCH v8 2/2] ARM: Enable selection of SMP operations at boot time In-Reply-To: <20130425084933.GB12848@mudshark.cambridge.arm.com> Message-ID: References: <1366828819-10745-2-git-send-email-stefano.stabellini@eu.citrix.com> <20130425084933.GB12848@mudshark.cambridge.arm.com> User-Agent: Alpine 2.03 (LFD 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 25 Apr 2013, Will Deacon wrote: > On Wed, Apr 24, 2013 at 07:40:19PM +0100, Stefano Stabellini wrote: > > From: Jon Medhurst > > > > Add a new 'smp_init' hook to machine_desc so platforms can specify a > > function to be used to setup smp ops instead of having a statically > > defined value. The hook must return true when smp_ops are initialized. > > If false the static mdesc->smp_ops will be used by default. > > > > Signed-off-by: Jon Medhurst > > Signed-off-by: Nicolas Pitre > > Signed-off-by: Stefano Stabellini > > Reviewed-by: Santosh Shilimkar > > --- > > arch/arm/include/asm/mach/arch.h | 4 ++++ > > arch/arm/kernel/setup.c | 10 ++++++---- > > 2 files changed, 10 insertions(+), 4 deletions(-) > > [...] > > > if (is_smp()) { > > - if (psci_smp_available()) > > - smp_set_ops(&psci_smp_ops); > > - else if (mdesc->smp) > > - smp_set_ops(mdesc->smp); > > + if (!mdesc->smp_init || !mdesc->smp_init()) { > > Minor nit, but this feels backwards to me. We usually return 0 on success, > yet we're saying here that if mdesc->smp_init() returns 0, then we go and > override the smp ops. It doesn't return 0, but true or false. So, semantically, if ->smp_init returns false, that means it didn't initialize anything. Nicolas