From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: uniphier: only select TWD for SMP
Date: Mon, 18 May 2015 22:26:33 +0200 [thread overview]
Message-ID: <2076486.2f0MnouCnx@wuerfel> (raw)
In-Reply-To: <CAK7LNATdibWyVuMMyw2h5MMVJFdEu4TWrDoGpGC9cPj068FXiQ@mail.gmail.com>
On Tuesday 19 May 2015 02:18:53 Masahiro Yamada wrote:
> Hi Arnd,
>
> 2015-05-19 0:55 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
> > This makes uniphier behave like all the other platforms that
> > support TWD, and only select this driver when SMP is enabled.
> > Without this, we get a compile error on UP builds:
> >
> > arch/arm/kernel/smp_twd.c: In function 'twd_local_timer_of_register':
> > arch/arm/kernel/smp_twd.c:391:20: error: 'setup_max_cpus' undeclared (first use in this function)
> >
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > I'd like to apply this directly to the next/soc branch
> >
> > diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
> > index a017b1dd9c78..b640458fd757 100644
> > --- a/arch/arm/mach-uniphier/Kconfig
> > +++ b/arch/arm/mach-uniphier/Kconfig
> > @@ -5,7 +5,7 @@ config ARCH_UNIPHIER
> > select ARM_GLOBAL_TIMER
> > select ARM_GIC
> > select HAVE_ARM_SCU
> > - select HAVE_ARM_TWD
> > + select HAVE_ARM_TWD if SMP
> > help
> > Support for UniPhier SoC family developed by Socionext Inc.
> > (formerly, System LSI Business Division of Panasonic Corporation)
>
>
>
> I am not familiar with smp_twd.c, but I think
> the local timer and watchdog still exist in the ARM mpcore
> even if it is a uni-processor implementation.
>
> That is why I simply selected HAVE_ARM_TWD.
> Am I doing something wrong?
I was wondering about this too. Everybody else has the 'if SMP' dependency
here, and if I leave it out, I get the build error. We could probably
fix that build error easily, but I don't know what the exact reason is
we can't have use the code when there is only one CPU.
This was introduced as part of 904464b91eca8 ("ARM: 7655/1: smp_twd: make
twd_local_timer_of_register() no-op for nosmp"), before that, we would
just try to use the driver, but fail in one of these calls:
twd_evt = alloc_percpu(struct clock_event_device);
err = request_percpu_irq(twd_ppi, twd_handler, "twd", twd_evt);
err = register_cpu_notifier(&twd_timer_cpu_nb);
which in turn causes a run-time warning. If we could fix that code
to just work on non-SMP, we can probably use that driver on all
machines that have the hardware.
> Is it reasonable to have something depends on HAVE_ARM_TWD?
>
>
> config SMP_ARM_TWD
> depends on SMP && HAVE_ARM_TWD
>
>
>
> obj-$(SMP_ARM_TWD) += smp_twd.o
>
>
>
> I am not sure...
This would probably work, but I'd like to understand the problem
more thoroughly before we change the behavior.
[adding Russell and Will to Cc, maybe they remember better why we
do things the way we do here]
Arnd
next prev parent reply other threads:[~2015-05-18 20:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-18 15:55 [PATCH] ARM: uniphier: only select TWD for SMP Arnd Bergmann
2015-05-18 17:18 ` Masahiro Yamada
2015-05-18 20:26 ` Arnd Bergmann [this message]
2015-05-19 0:52 ` Masahiro Yamada
2015-05-20 15:21 ` Arnd Bergmann
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=2076486.2f0MnouCnx@wuerfel \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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