ARM: imx6: fix SMP compilation again
Subsystems (3)
PATCH 1/1 ARM: imx6: fix SMP compilation again
My earlier patch 1fc593feaf8e ("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but missed the corner case of building a kernel for i.MX5 with SMP enabled. It is an extremely rare case that has only now happened after many thousands of randconfig kernel builds.
The error message I get is arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'
This puts the code inside of an "ifdef CONFIG_SMP" to hopefully do the right thing in all configurations.
arch/arm/mach-imx/Makefile +2 -0
@@ -93,9 +93,11 @@ obj-$(CONFIG_HAVE_IMX_ANATOP) += anatop.o obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o obj-$(CONFIG_HAVE_IMX_SRC) += src.o +ifdef CONFIG_SOC_IMX6 AFLAGS_headsmp.o :=-Wa,-march=armv7-a obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o +endif obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o mach-imx6sx.o
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 9 lines · Arnd Bergmann
My earlier patch
1fc593feaf8e("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but missed the corner case of building a kernel for i.MX5 with SMP enabled. It is an extremely rare case that has only now happened after many thousands of randconfig kernel builds.The error message I get is
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'
I cannot reproduce it, and unsure how it happens.
The v7_invalidate_l1() is defined in arch/arm/mm/cache-v7.S, and should be available for i.MX5 build.
Shawn
Quoted 23 lines
This puts the code inside of an "ifdef
CONFIG_SMP" to hopefully do the right thing in all configurations.Signed-off-by Arnd Bergmann <[email protected]>arch/arm/mach-imx/Makefile +2
-0@@ -93,9 +93,11 @@ obj-$(CONFIG_HAVE_IMX_ANATOP) += anatop.o obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o obj-$(CONFIG_HAVE_IMX_SRC) += src.o +ifdef CONFIG_SOC_IMX6 AFLAGS_headsmp.o :=-Wa,-march=armv7-a obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o +endif obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o mach-imx6sx.o
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 7 lines · On Tuesday 22 July 2014 16:50:56 Shawn Guo wrote:
Quoted 6 lines · Arnd Bergmann
My earlier patch
1fc593feaf8e("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but missed the corner case of building a kernel for i.MX5 with SMP enabled. It is an extremely rare case that has only now happened after many thousands of randconfig kernel builds.
Quoted 9 lines
Quoted 3 lines
The error message I get is
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'I cannot reproduce it, and unsure how it happens.
The
v7_invalidate_l1()is defined inarch/arm/mm/cache-v7.S, and should be available for i.MX5 build.
Ah, you are right, I got the text wrong here, and I think I now understand why it didn't happen earlier. Updated patch below (same patch, new text).
8<-------------
Subject: [PATCH] ARM: imx6: fix SMP compilation again
My earlier patch 1fc593feaf8e ("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but now the problem has returned for the case where we allow ARMv6K SMP builds in multiplatform. With CONFIG_CPU_V7 disabled, but i.MX3 and SMP enabled, we get this build error:
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'
This puts the code inside of an "ifdef CONFIG_SMP" to hopefully do the right thing in all configurations.
arch/arm/mach-imx/Makefile +2 -0
@@ -93,9 +93,11 @@ obj-$(CONFIG_HAVE_IMX_ANATOP) += anatop.o obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o obj-$(CONFIG_HAVE_IMX_SRC) += src.o +ifdef CONFIG_SOC_IMX6 AFLAGS_headsmp.o :=-Wa,-march=armv7-a obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o +endif obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o mach-imx6sx.o
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 4 lines · Arnd Bergmann
Ah, you are right, I got the text wrong here, and I think I now understand why it didn't happen earlier. Updated patch below (same patch, new text).
Quoted 8 lines
8<-------------
Subject: [PATCH] ARM: imx6: fix SMP compilation againMy earlier patch
1fc593feaf8e("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but now the problem has returned for the case where we allow ARMv6K SMP builds in multiplatform. WithCONFIG_CPU_V7disabled, but i.MX3 and SMP enabled, we get this build error:
Maybe I missed something, but I have problem to get the following three conditions meet in a single kernel configuration.
a) CONFIG_CPU_V7 disabled
b) i.MX3 enabled
c) SMP enabled
When I get a) and b) in the config, I have no way to get c). And it seems that the only way to get a) and c) at the same time is to enable MACH_REALVIEW_PB11MP, which is not part of multi-platform support. So i.MX3 cannot be enabled in there.
I tried both mainline and -next tree. I really need some help to reproduce the error first.
Quoted 5 lines
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'This puts the code inside of an "ifdef
CONFIG_SMP" to hopefully
The code says "ifdef CONFIG_SOC_IMX6"?
Shawn
Quoted 21 lines
do the right thing in all configurations.
Signed-off-by Arnd Bergmann <[email protected]>arch/arm/mach-imx/Makefile +2
-0@@ -93,9 +93,11 @@ obj-$(CONFIG_HAVE_IMX_ANATOP) += anatop.o obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o obj-$(CONFIG_HAVE_IMX_MMDC) += mmdc.o obj-$(CONFIG_HAVE_IMX_SRC) += src.o +ifdef CONFIG_SOC_IMX6 AFLAGS_headsmp.o :=-Wa,-march=armv7-a obj-$(CONFIG_SMP) += headsmp.o platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o +endif obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o mach-imx6sx.o
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 21 lines · Shawn Guo
Quoted 4 lines · Arnd Bergmann
Ah, you are right, I got the text wrong here, and I think I now understand why it didn't happen earlier. Updated patch below (same patch, new text).
Quoted 8 lines
8<-------------
Subject: [PATCH] ARM: imx6: fix SMP compilation againMy earlier patch
1fc593feaf8e("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but now the problem has returned for the case where we allow ARMv6K SMP builds in multiplatform. WithCONFIG_CPU_V7disabled, but i.MX3 and SMP enabled, we get this build error:Maybe I missed something, but I have problem to get the following three conditions meet in a single kernel configuration.
a)
CONFIG_CPU_V7disabled
b) i.MX3 enabled
c) SMP enabled
Quoted 7 lines
When I get a) and b) in the config, I have no way to get c). And it seems that the only way to get a) and c) at the same time is to enable
MACH_REALVIEW_PB11MP, which is not part of multi-platform support. So i.MX3 cannot be enabled in there.I tried both mainline and -next tree. I really need some help to reproduce the error first.
Without even looking at the patch, I think the key here is this part of Arnd's commit log:
for the case where we allow ARMv6K SMP builds in multiplatform ...
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 1/1 ARM: imx6: fix SMP compilation again
In reply to Shawn GuoQuoted 17 lines · On Tuesday 22 July 2014 21:48:16 Shawn Guo wrote:
Quoted 4 lines · Arnd Bergmann
Ah, you are right, I got the text wrong here, and I think I now understand why it didn't happen earlier. Updated patch below (same patch, new text).
Quoted 8 lines
8<-------------
Subject: [PATCH] ARM: imx6: fix SMP compilation againMy earlier patch
1fc593feaf8e("ARM: imx: build i.MX6 functions only when needed") fixed a problem with building an i.MX5 kernel, but now the problem has returned for the case where we allow ARMv6K SMP builds in multiplatform. WithCONFIG_CPU_V7disabled, but i.MX3 and SMP enabled, we get this build error:Maybe I missed something, but I have problem to get the following three conditions meet in a single kernel configuration.
Quoted 8 lines
a)
CONFIG_CPU_V7disabled
b) i.MX3 enabled
c) SMP enabledWhen I get a) and b) in the config, I have no way to get c). And it seems that the only way to get a) and c) at the same time is to enable
MACH_REALVIEW_PB11MP, which is not part of multi-platform support. So i.MX3 cannot be enabled in there.
I have a patch series to make ARCH_REALVIEW multiplatform-enabled, and I guess the condition can only be hit with these patches, or any other that selects HAS_SMP.
Quoted 2 lines
I tried both mainline and -next tree. I really need some help to reproduce the error first.
My branch is at git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git in the randconfig-next branch. Sorry for the inconvenience.
Quoted 6 lines
Quoted 4 lines
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'This puts the code inside of an "ifdef
CONFIG_SMP" to hopefullyThe code says "ifdef
CONFIG_SOC_IMX6"?
It seems I'm having a bad day. I'll fix it up.
Arnd
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 6 lines · Arnd Bergmann
Quoted 2 lines · On Tuesday 22 July 2014 21:48:16 Shawn Guo wrote:
I tried both mainline and -next tree. I really need some help to reproduce the error first.
My branch is at git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git in the randconfig-next branch. Sorry for the inconvenience.
Okay, I can see the error on your branch with the fixing patch reverted.
Quoted 9 lines
Quoted 7 lines
Quoted 5 lines
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'This puts the code inside of an "ifdef
CONFIG_SMP" to hopefullyThe code says "ifdef
CONFIG_SOC_IMX6"?It seems I'm having a bad day. I'll fix it up.
With that fixed up,
Or let me know if you expect me to handle the patch.
Shawn
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 18 lines · On Tuesday 22 July 2014 22:52:57 Shawn Guo wrote:
Quoted 6 lines · Arnd Bergmann
Quoted 2 lines · On Tuesday 22 July 2014 21:48:16 Shawn Guo wrote:
I tried both mainline and -next tree. I really need some help to reproduce the error first.
My branch is at git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git in the randconfig-next branch. Sorry for the inconvenience.
Okay, I can see the error on your branch with the fixing patch reverted.
Quoted 8 lines
Quoted 7 lines
Quoted 5 lines
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'This puts the code inside of an "ifdef
CONFIG_SMP" to hopefullyThe code says "ifdef
CONFIG_SOC_IMX6"?
Quoted 8 lines
Quoted 1 line
It seems I'm having a bad day. I'll fix it up.
With that fixed up,
Acked-by Shawn Guo <[email protected]>Or let me know if you expect me to handle the patch.
If you don't mind, just put it into your tree. I'm currently in the middle of going through my older patches and don't want to lose this one.
Arnd
PATCH 1/1 ARM: imx6: fix SMP compilation again
Quoted 23 lines · Arnd Bergmann
Quoted 22 lines · On Tuesday 22 July 2014 22:52:57 Shawn Guo wrote:
Quoted 6 lines · Arnd Bergmann
Quoted 2 lines · On Tuesday 22 July 2014 21:48:16 Shawn Guo wrote:
I tried both mainline and -next tree. I really need some help to reproduce the error first.
My branch is at git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git in the randconfig-next branch. Sorry for the inconvenience.
Okay, I can see the error on your branch with the fixing patch reverted.
Quoted 9 lines
Quoted 7 lines
Quoted 5 lines
arch/arm/mach-imx/built-in.o: In function `v7_secondary_startup':
:(.text+0x5124): undefined reference to `v7_invalidate_l1'This puts the code inside of an "ifdef
CONFIG_SMP" to hopefullyThe code says "ifdef
CONFIG_SOC_IMX6"?It seems I'm having a bad day. I'll fix it up.
With that fixed up,
Quoted 7 lines
Quoted 4 lines
Acked-by Shawn Guo <[email protected]>Or let me know if you expect me to handle the patch.
If you don't mind, just put it into your tree. I'm currently in the middle of going through my older patches and don't want to lose this one.
Okay, applied after fixing up the commit log.
Shawn