From: Jean Delvare <jdelvare@suse.de>
To: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Olof Johansson <olof@lixom.net>, Tero Kristo <t-kristo@ti.com>,
Thierry Reding <treding@nvidia.com>,
Carlo Caione <carlo@endlessm.com>, Nishanth Menon <nm@ti.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] psci: add CPU_IDLE dependency
Date: Mon, 31 Jul 2017 16:14:58 +0200 [thread overview]
Message-ID: <20170731161458.08c34088@endymion> (raw)
In-Reply-To: <e8580a81-5cca-462c-24c1-30232e19462e@arm.com>
Hi Kevin,
On Mon, 31 Jul 2017 11:19:39 +0100, Kevin Brodsky wrote:
> On 31/07/17 09:55, Arnd Bergmann wrote:
> > I ran into a build error for the psci_checker:
> >
> > drivers/firmware/psci_checker.o: In function `psci_checker':
> > psci_checker.c:(.init.text+0x528): undefined reference to `cpuidle_devices'
> >
> > As far as I can tell, this is simply a very rare combination of options,
> > but the problem has existed since the code was initially added.
> > Adding a Kconfig dependency makes it build properly.
>
> Good catch! For some reason I missed this config option when figuring out the
> dependencies... I wonder though, shouldn't cpuidle.h declare cpuidle_devices
> conditionally on CONFIG_CPU_IDLE?
Such conditional declarations only make sense if there is a legitimate
use of the disabled case and if they make the disabled case fully
transparent to the users. This is typically done by replacing function
declarations by inline stubs doing nothing in the right way when the
feature is disabled. It avoids having to put the condition checks on the
side of all users.
In this case however, you can't stub out cpuidle_devices alone. If you
omit the declaration when CONFIG_CPU_IDLE isn't set, all you'll get is a
failure at compilation time, instead of at linkage time. This barely
helps. For it to be useful, you would additionally have to provide
wrappers around
this_cpu_read(cpuidle_devices)
and
per_cpu(cpuidle_devices, cpu)
and stub out these wrappers when CONFIG_CPU_IDLE is disabled (so you
don't refer to cpuidle_devices at all when it isn't available.)
But then again this would only make sense if the psci_checker still
serves a purpose when CONFIG_CPU_IDLE isn't set. Not my area, but after
a quick look at the code I strongly suspect this is not the case.
> > Fixes: ea8b1c4a6019 ("drivers: psci: PSCI checker module")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> Acked-by: Kevin Brodsky <kevin.brodsky@arm.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
--
Jean Delvare
SUSE L3 Support
next prev parent reply other threads:[~2017-07-31 14:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-31 8:55 Arnd Bergmann
2017-07-31 10:19 ` Kevin Brodsky
2017-07-31 14:14 ` Jean Delvare [this message]
2017-07-31 16:22 ` Kevin Brodsky
2018-01-19 15:18 ` Arnd Bergmann
2017-07-31 12:34 ` Nishanth Menon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170731161458.08c34088@endymion \
--to=jdelvare@suse.de \
--cc=arnd@arndb.de \
--cc=carlo@endlessm.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=nm@ti.com \
--cc=olof@lixom.net \
--cc=t-kristo@ti.com \
--cc=treding@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®