[PATCH 1/2] ARM: Availability of psci_smp_available depends on CONFIG_SMP

Peter De Schrijver pdeschrijver at nvidia.com
Mon May 11 05:13:42 PDT 2015


On Sun, May 10, 2015 at 11:48:20AM +0200, Jan Kiszka wrote:
> On 2015-05-08 18:14, Will Deacon wrote:
> > On Fri, May 08, 2015 at 03:56:20PM +0100, Russell King - ARM Linux wrote:
> >> On Fri, May 08, 2015 at 01:26:17PM +0200, Thierry Reding wrote:
> >>> On Fri, May 08, 2015 at 07:55:26AM +0200, Jan Kiszka wrote:
> >>>> Ensure that we can use psci_smp_available without checking for
> >>>> CONFIG_SMP first.
> >>>>
> >>>> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
> >>>> ---
> >>>>  arch/arm/include/asm/psci.h | 6 +++++-
> >>>>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h
> >>>> index c25ef3e..eef6a0a 100644
> >>>> --- a/arch/arm/include/asm/psci.h
> >>>> +++ b/arch/arm/include/asm/psci.h
> >>>> @@ -39,9 +39,13 @@ extern struct smp_operations psci_smp_ops;
> >>>>  
> >>>>  #ifdef CONFIG_ARM_PSCI
> >>>>  int psci_init(void);
> >>>> -bool psci_smp_available(void);
> >>>>  #else
> >>>>  static inline int psci_init(void) { return 0; }
> >>>> +#endif
> >>>> +
> >>>> +#if defined(CONFIG_ARM_PSCI) && defined(CONFIG_SMP)
> >>>> +bool psci_smp_available(void);
> >>>> +#else
> >>>>  static inline bool psci_smp_available(void) { return false; }
> >>>>  #endif
> >>>>  
> >>>
> >>> Looks good to me.
> >>>
> >>> Russell, would you be willing to ack this patch so that I can take it
> >>> through the Tegra tree along with patch 2/2 that depends on this?
> >>
> >> I'd prefer to see an ack from Will on this, as it's code which Will
> >> contributed and presumably understands better than me.
> > 
> > Sorry, I'm late to the thread so I'm a tad confused.
> > 
> > If I understand correctly, these two patches are trying to avoid using
> > the tegra cpuidle driver if PSCI is available instead? That raises the
> > question as to whether or not you're actually trying to discover whether
> > you're in the secure or non-secure world.
> > 
> > I assume PSCI only works if the kernel is running in non-secure mode,
> > but does the Tegra cpuidle driver only work in secure mode?
> 
> To my understanding of the hardware, the flow controller can be accessed
> from both worlds. So, testing the mode would neither be sufficient nor
> more logical - it's PSCI which occupies this resource, not automatically
> all secure monitors.

This is correct. The flow controller doesn't check the NS bit.

Cheers,

Peter.



More information about the linux-arm-kernel mailing list