diff mbox series

[2/2] ARM: shmobile: only call secure_cntvoff_init on SMP builds

Message ID 20180525161051.187324-2-arnd@arndb.de
State New
Headers show
Series [1/2] ARM: stm32: Don't select DMA unconditionally on STM32MP157C | expand

Commit Message

Arnd Bergmann May 25, 2018, 4:10 p.m. UTC
The secure_cntvoff_init() function is not available without CONFIG_SMP,
leading to a link error on shmobile:

arch/arm/mach-shmobile/setup-rcar-gen2.o: In function `rcar_gen2_timer_init':
setup-rcar-gen2.c:(.init.text+0x18): undefined reference to `secure_cntvoff_init'

From the description in commit 3fd45a136ff6 ("ARM: shmobile: rcar-gen2:
Make sure CNTVOFF is initialized on CA7/15"), I understand that we
don't need to call it on non-SMP builds because the boot CPU is always
initialized by common code, so we can simply avoid the reference by
checking for CONFIG_SMP.

Fixes: cad160ed0a94 ("ARM: shmobile: Convert file to use cntvoff")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 arch/arm/mach-shmobile/setup-rcar-gen2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
2.9.0

Comments

Geert Uytterhoeven May 25, 2018, 7:12 p.m. UTC | #1
Hi Arnd,

On Fri, May 25, 2018 at 6:10 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> The secure_cntvoff_init() function is not available without CONFIG_SMP,

> leading to a link error on shmobile:

>

> arch/arm/mach-shmobile/setup-rcar-gen2.o: In function `rcar_gen2_timer_init':

> setup-rcar-gen2.c:(.init.text+0x18): undefined reference to `secure_cntvoff_init'

>

> From the description in commit 3fd45a136ff6 ("ARM: shmobile: rcar-gen2:

> Make sure CNTVOFF is initialized on CA7/15"), I understand that we

> don't need to call it on non-SMP builds because the boot CPU is always

> initialized by common code, so we can simply avoid the reference by

> checking for CONFIG_SMP.

>

> Fixes: cad160ed0a94 ("ARM: shmobile: Convert file to use cntvoff")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


NAKed-by: Geert Uytterhoeven <geert+renesas@glider.be>

> --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c

> +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c

> @@ -71,7 +71,8 @@ void __init rcar_gen2_timer_init(void)

>         void __iomem *base;

>         u32 freq;

>

> -       secure_cntvoff_init();

> +       if (IS_ENABLED(CONFIG_SMP))

> +               secure_cntvoff_init();


The call here is for the boot CPU, since commit 9ce3fa6816c2fb59 ("ARM:
shmobile: rcar-gen2: Add CA7 arch_timer initialization for r8a7794"), and
modified and consolidated in commit 3fd45a136ff6 mentioned above.

The call for secondary CPUs is in arch/arm/mach-shmobile/headsmp-apmu.S.

>

>         if (of_machine_is_compatible("renesas,r8a7745") ||

>             of_machine_is_compatible("renesas,r8a77470") ||


So the proper fix is to build arch/arm/common/secure_cntvoff.o
unconditionally.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
diff mbox series

Patch

diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c
index 88fdc1801d90..39085d7a8f37 100644
--- a/arch/arm/mach-shmobile/setup-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c
@@ -71,7 +71,8 @@  void __init rcar_gen2_timer_init(void)
 	void __iomem *base;
 	u32 freq;
 
-	secure_cntvoff_init();
+	if (IS_ENABLED(CONFIG_SMP))
+		secure_cntvoff_init();
 
 	if (of_machine_is_compatible("renesas,r8a7745") ||
 	    of_machine_is_compatible("renesas,r8a77470") ||