linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] BSYM macro removal and secondary startup fixes
@ 2012-01-12 17:31 Rob Herring
  2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

BSYM macro usage is generally unnecessary in .c files if assembly functions
are properly annotated with ENTRY/ENDPROC. BSYM combined with properly
annotated assembly functions or C functions generates a wrong address
on Thumb2 builds causing secondary cores to fail to boot.

Tested Thumb2 SMP boot on highbank and imx6.

Changes in v2:
- Add missing ENDPROC annotation for all secondary startup functions.
- Use Pawel's patch for ARM boards instead.

Rob

Pawel Moll (1):
  ARM: versatile: Add missing ENDPROC to headsmp.S

Rob Herring (6):
  ARM: msm: Add missing ENDPROC to headsmp.S
  ARM: ux500: add missing ENDPROC to headsmp.S
  ARM: exynos: remove incorrect BSYM usage
  ARM: imx: remove incorrect BSYM usage
  ARM: highbank: remove incorrect BSYM usage
  ARM: make BSYM macro assembly only

 arch/arm/include/asm/unified.h    |    4 ++--
 arch/arm/mach-exynos/headsmp.S    |    1 +
 arch/arm/mach-exynos/platsmp.c    |    5 ++---
 arch/arm/mach-highbank/highbank.c |    3 +--
 arch/arm/mach-imx/src.c           |    3 +--
 arch/arm/mach-msm/headsmp.S       |    1 +
 arch/arm/mach-realview/platsmp.c  |    3 +--
 arch/arm/mach-ux500/headsmp.S     |    1 +
 arch/arm/mach-vexpress/platsmp.c  |    4 +---
 arch/arm/plat-versatile/headsmp.S |    1 +
 10 files changed, 12 insertions(+), 14 deletions(-)

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:09   ` Dave Martin
  2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Pawel Moll <pawel.moll@arm.com>

Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to versatile_secondary_startup().

Tested-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
---
 arch/arm/mach-realview/platsmp.c  |    3 +--
 arch/arm/mach-vexpress/platsmp.c  |    4 +---
 arch/arm/plat-versatile/headsmp.S |    1 +
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index e83c654..17c878d 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -17,7 +17,6 @@
 #include <asm/hardware/gic.h>
 #include <asm/mach-types.h>
 #include <asm/smp_scu.h>
-#include <asm/unified.h>
 
 #include <mach/board-eb.h>
 #include <mach/board-pb11mp.h>
@@ -75,6 +74,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
 	 * until it receives a soft interrupt, and then the
 	 * secondary CPU branches to this address.
 	 */
-	__raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+	__raw_writel(virt_to_phys(versatile_secondary_startup),
 		     __io_address(REALVIEW_SYS_FLAGSSET));
 }
diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
index 2b5f7ac..124ffb1 100644
--- a/arch/arm/mach-vexpress/platsmp.c
+++ b/arch/arm/mach-vexpress/platsmp.c
@@ -13,8 +13,6 @@
 #include <linux/smp.h>
 #include <linux/io.h>
 
-#include <asm/unified.h>
-
 #include <mach/motherboard.h>
 #define V2M_PA_CS7 0x10000000
 
@@ -46,6 +44,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
 	 * secondary CPU branches to this address.
 	 */
 	writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
-	writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+	writel(virt_to_phys(versatile_secondary_startup),
 		MMIO_P2V(V2M_SYS_FLAGSSET));
 }
diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
index d397a1f..dd703ef 100644
--- a/arch/arm/plat-versatile/headsmp.S
+++ b/arch/arm/plat-versatile/headsmp.S
@@ -38,3 +38,4 @@ pen:	ldr	r7, [r6]
 	.align
 1:	.long	.
 	.long	pen_release
+ENDPROC(versatile_secondary_startup)
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/7] ARM: msm: Add missing ENDPROC to headsmp.S
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
  2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to msm_secondary_startup().

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@fifo99.com>
---
 arch/arm/mach-msm/headsmp.S |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-msm/headsmp.S b/arch/arm/mach-msm/headsmp.S
index 0c631a9..bcd5af2 100644
--- a/arch/arm/mach-msm/headsmp.S
+++ b/arch/arm/mach-msm/headsmp.S
@@ -34,6 +34,7 @@ pen:	ldr	r7, [r6]
 	 * should now contain the SVC stack for this core
 	 */
 	b	secondary_startup
+ENDPROC(msm_secondary_startup)
 
 	.align
 1:	.long	.
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
  2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
  2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:24   ` Dave Martin
  2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

Once the ENDPROC is in place, BSYM() in not longer necessary
to get correct pointer to u8500_secondary_startup().

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@stericsson.com>
---
 arch/arm/mach-ux500/headsmp.S |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
index 64fa451..d03843d 100644
--- a/arch/arm/mach-ux500/headsmp.S
+++ b/arch/arm/mach-ux500/headsmp.S
@@ -32,6 +32,7 @@ pen:	ldr	r7, [r6]
 	 * should now contain the SVC stack for this core
 	 */
 	b	secondary_startup
+ENDPROC(u8500_secondary_startup)
 
 1:	.long	.
 	.long	pen_release
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
                   ` (2 preceding siblings ...)
  2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:24   ` Dave Martin
  2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
---
 arch/arm/mach-exynos/headsmp.S |    1 +
 arch/arm/mach-exynos/platsmp.c |    5 ++---
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
index 3cdeb36..b6a0ee2 100644
--- a/arch/arm/mach-exynos/headsmp.S
+++ b/arch/arm/mach-exynos/headsmp.S
@@ -36,6 +36,7 @@ pen:	ldr	r7, [r6]
 	 * should now contain the SVC stack for this core
 	 */
 	b	secondary_startup
+ENDPROC(exynos4_secondary_startup)
 
 1:	.long	.
 	.long	pen_release
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 60bc45e..683aec7 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -24,7 +24,6 @@
 #include <asm/cacheflush.h>
 #include <asm/hardware/gic.h>
 #include <asm/smp_scu.h>
-#include <asm/unified.h>
 
 #include <mach/hardware.h>
 #include <mach/regs-clock.h>
@@ -137,7 +136,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
 	while (time_before(jiffies, timeout)) {
 		smp_rmb();
 
-		__raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
+		__raw_writel(virt_to_phys(exynos4_secondary_startup),
 			CPU1_BOOT_REG);
 		gic_raise_softirq(cpumask_of(cpu), 1);
 
@@ -192,6 +191,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
 	 * until it receives a soft interrupt, and then the
 	 * secondary CPU branches to this address.
 	 */
-	__raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
+	__raw_writel(virt_to_phys(exynos4_secondary_startup),
 			CPU1_BOOT_REG);
 }
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 5/7] ARM: imx: remove incorrect BSYM usage
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
                   ` (3 preceding siblings ...)
  2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:27   ` Dave Martin
  2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
  2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/mach-imx/src.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
index 4bde04f..29bd124 100644
--- a/arch/arm/mach-imx/src.c
+++ b/arch/arm/mach-imx/src.c
@@ -15,7 +15,6 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/smp.h>
-#include <asm/unified.h>
 
 #define SRC_SCR				0x000
 #define SRC_GPR1			0x020
@@ -43,7 +42,7 @@ void imx_enable_cpu(int cpu, bool enable)
 void imx_set_cpu_jump(int cpu, void *jump_addr)
 {
 	cpu = cpu_logical_map(cpu);
-	writel_relaxed(BSYM(virt_to_phys(jump_addr)),
+	writel_relaxed(virt_to_phys(jump_addr),
 		       src_base + SRC_GPR1 + cpu * 8);
 }
 
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 6/7] ARM: highbank: remove incorrect BSYM usage
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
                   ` (4 preceding siblings ...)
  2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:29   ` Dave Martin
  2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

BSYM macro is only needed for assembly files and its usage in c files is
wrong, so remove it. The linker will correctly set bit 0 for Thumb2
kernels.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
---
 arch/arm/mach-highbank/highbank.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
index 804c4a5..7afbe1e 100644
--- a/arch/arm/mach-highbank/highbank.c
+++ b/arch/arm/mach-highbank/highbank.c
@@ -25,7 +25,6 @@
 #include <linux/smp.h>
 
 #include <asm/cacheflush.h>
-#include <asm/unified.h>
 #include <asm/smp_scu.h>
 #include <asm/hardware/arm_timer.h>
 #include <asm/hardware/timer-sp.h>
@@ -76,7 +75,7 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
 #ifdef CONFIG_SMP
 	cpu = cpu_logical_map(cpu);
 #endif
-	writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu));
+	writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
 	__cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
 	outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
 			  HB_JUMP_TABLE_PHYS(cpu) + 15);
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 7/7] ARM: make BSYM macro assembly only
  2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
                   ` (5 preceding siblings ...)
  2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
@ 2012-01-12 17:31 ` Rob Herring
  2012-01-13 14:10   ` Dave Martin
  6 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2012-01-12 17:31 UTC (permalink / raw)
  To: linux-arm-kernel

From: Rob Herring <rob.herring@calxeda.com>

BSYM macro is only needed for assembly files and its usage in c files is
wrong, so only define it for assembly.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <dave.martin@linaro.org>
---
 arch/arm/include/asm/unified.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h
index bc63116..f5989f4 100644
--- a/arch/arm/include/asm/unified.h
+++ b/arch/arm/include/asm/unified.h
@@ -37,8 +37,8 @@
 #define THUMB(x...)	x
 #ifdef __ASSEMBLY__
 #define W(instr)	instr.w
-#endif
 #define BSYM(sym)	sym + 1
+#endif
 
 #else	/* !CONFIG_THUMB2_KERNEL */
 
@@ -49,8 +49,8 @@
 #define THUMB(x...)
 #ifdef __ASSEMBLY__
 #define W(instr)	instr
-#endif
 #define BSYM(sym)	sym
+#endif
 
 #endif	/* CONFIG_THUMB2_KERNEL */
 
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S
  2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
@ 2012-01-13 14:09   ` Dave Martin
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:10AM -0600, Rob Herring wrote:
> From: Pawel Moll <pawel.moll@arm.com>
> 
> Once the ENDPROC is in place, BSYM() in not longer necessary
> to get correct pointer to versatile_secondary_startup().
> 
> Tested-by: Jon Medhurst <tixy@linaro.org>
> Signed-off-by: Pawel Moll <pawel.moll@arm.com>

Acked-by: Dave Martin <dave.martin@linaro.org>

> ---
>  arch/arm/mach-realview/platsmp.c  |    3 +--
>  arch/arm/mach-vexpress/platsmp.c  |    4 +---
>  arch/arm/plat-versatile/headsmp.S |    1 +
>  3 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
> index e83c654..17c878d 100644
> --- a/arch/arm/mach-realview/platsmp.c
> +++ b/arch/arm/mach-realview/platsmp.c
> @@ -17,7 +17,6 @@
>  #include <asm/hardware/gic.h>
>  #include <asm/mach-types.h>
>  #include <asm/smp_scu.h>
> -#include <asm/unified.h>
>  
>  #include <mach/board-eb.h>
>  #include <mach/board-pb11mp.h>
> @@ -75,6 +74,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
>  	 * until it receives a soft interrupt, and then the
>  	 * secondary CPU branches to this address.
>  	 */
> -	__raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)),
> +	__raw_writel(virt_to_phys(versatile_secondary_startup),
>  		     __io_address(REALVIEW_SYS_FLAGSSET));
>  }
> diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
> index 2b5f7ac..124ffb1 100644
> --- a/arch/arm/mach-vexpress/platsmp.c
> +++ b/arch/arm/mach-vexpress/platsmp.c
> @@ -13,8 +13,6 @@
>  #include <linux/smp.h>
>  #include <linux/io.h>
>  
> -#include <asm/unified.h>
> -
>  #include <mach/motherboard.h>
>  #define V2M_PA_CS7 0x10000000
>  
> @@ -46,6 +44,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
>  	 * secondary CPU branches to this address.
>  	 */
>  	writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
> -	writel(BSYM(virt_to_phys(versatile_secondary_startup)),
> +	writel(virt_to_phys(versatile_secondary_startup),
>  		MMIO_P2V(V2M_SYS_FLAGSSET));
>  }
> diff --git a/arch/arm/plat-versatile/headsmp.S b/arch/arm/plat-versatile/headsmp.S
> index d397a1f..dd703ef 100644
> --- a/arch/arm/plat-versatile/headsmp.S
> +++ b/arch/arm/plat-versatile/headsmp.S
> @@ -38,3 +38,4 @@ pen:	ldr	r7, [r6]
>  	.align
>  1:	.long	.
>  	.long	pen_release
> +ENDPROC(versatile_secondary_startup)
> -- 
> 1.7.5.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 7/7] ARM: make BSYM macro assembly only
  2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
@ 2012-01-13 14:10   ` Dave Martin
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:16AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so only define it for assembly.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>

I already acked the previously posted version, but it's essentially the
same, so:

Acked-by: Dave Martin <dave.martin@linaro.org>

> ---
>  arch/arm/include/asm/unified.h |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h
> index bc63116..f5989f4 100644
> --- a/arch/arm/include/asm/unified.h
> +++ b/arch/arm/include/asm/unified.h
> @@ -37,8 +37,8 @@
>  #define THUMB(x...)	x
>  #ifdef __ASSEMBLY__
>  #define W(instr)	instr.w
> -#endif
>  #define BSYM(sym)	sym + 1
> +#endif
>  
>  #else	/* !CONFIG_THUMB2_KERNEL */
>  
> @@ -49,8 +49,8 @@
>  #define THUMB(x...)
>  #ifdef __ASSEMBLY__
>  #define W(instr)	instr
> -#endif
>  #define BSYM(sym)	sym
> +#endif
>  
>  #endif	/* CONFIG_THUMB2_KERNEL */
>  
> -- 
> 1.7.5.4
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
  2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
@ 2012-01-13 14:24   ` Dave Martin
  2012-01-13 14:46     ` Rob Herring
  0 siblings, 1 reply; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:12AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> Once the ENDPROC is in place, BSYM() in not longer necessary
> to get correct pointer to u8500_secondary_startup().
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
> Cc: Linus Walleij <linus.walleij@stericsson.com>

The words at label 1 may be misaligned in a Thumb kernel, which is
undesirable.

It probably makes sense to add a .align 2 before that label
as part of this patch.

Cheers
---Dave

> ---
>  arch/arm/mach-ux500/headsmp.S |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
> index 64fa451..d03843d 100644
> --- a/arch/arm/mach-ux500/headsmp.S
> +++ b/arch/arm/mach-ux500/headsmp.S
> @@ -32,6 +32,7 @@ pen:	ldr	r7, [r6]
>  	 * should now contain the SVC stack for this core
>  	 */
>  	b	secondary_startup
> +ENDPROC(u8500_secondary_startup)
>  
>  1:	.long	.
>  	.long	pen_release
> -- 
> 1.7.5.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage
  2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
@ 2012-01-13 14:24   ` Dave Martin
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:13AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
> Cc: Kukjin Kim <kgene.kim@samsung.com>

Missing .align before label 1 (see my comment on the ux500 patch)

Cheers
---Dave

> ---
>  arch/arm/mach-exynos/headsmp.S |    1 +
>  arch/arm/mach-exynos/platsmp.c |    5 ++---
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
> index 3cdeb36..b6a0ee2 100644
> --- a/arch/arm/mach-exynos/headsmp.S
> +++ b/arch/arm/mach-exynos/headsmp.S
> @@ -36,6 +36,7 @@ pen:	ldr	r7, [r6]
>  	 * should now contain the SVC stack for this core
>  	 */
>  	b	secondary_startup
> +ENDPROC(exynos4_secondary_startup)
>  
>  1:	.long	.
>  	.long	pen_release
> diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
> index 60bc45e..683aec7 100644
> --- a/arch/arm/mach-exynos/platsmp.c
> +++ b/arch/arm/mach-exynos/platsmp.c
> @@ -24,7 +24,6 @@
>  #include <asm/cacheflush.h>
>  #include <asm/hardware/gic.h>
>  #include <asm/smp_scu.h>
> -#include <asm/unified.h>
>  
>  #include <mach/hardware.h>
>  #include <mach/regs-clock.h>
> @@ -137,7 +136,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
>  	while (time_before(jiffies, timeout)) {
>  		smp_rmb();
>  
> -		__raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
> +		__raw_writel(virt_to_phys(exynos4_secondary_startup),
>  			CPU1_BOOT_REG);
>  		gic_raise_softirq(cpumask_of(cpu), 1);
>  
> @@ -192,6 +191,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
>  	 * until it receives a soft interrupt, and then the
>  	 * secondary CPU branches to this address.
>  	 */
> -	__raw_writel(BSYM(virt_to_phys(exynos4_secondary_startup)),
> +	__raw_writel(virt_to_phys(exynos4_secondary_startup),
>  			CPU1_BOOT_REG);
>  }
> -- 
> 1.7.5.4
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 5/7] ARM: imx: remove incorrect BSYM usage
  2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
@ 2012-01-13 14:27   ` Dave Martin
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:14AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Acked-by: Shawn Guo <shawn.guo@linaro.org>

Acked-by: Dave Martin <dave.martin@linaro.org>

> ---
>  arch/arm/mach-imx/src.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c
> index 4bde04f..29bd124 100644
> --- a/arch/arm/mach-imx/src.c
> +++ b/arch/arm/mach-imx/src.c
> @@ -15,7 +15,6 @@
>  #include <linux/of.h>
>  #include <linux/of_address.h>
>  #include <linux/smp.h>
> -#include <asm/unified.h>
>  
>  #define SRC_SCR				0x000
>  #define SRC_GPR1			0x020
> @@ -43,7 +42,7 @@ void imx_enable_cpu(int cpu, bool enable)
>  void imx_set_cpu_jump(int cpu, void *jump_addr)
>  {
>  	cpu = cpu_logical_map(cpu);
> -	writel_relaxed(BSYM(virt_to_phys(jump_addr)),
> +	writel_relaxed(virt_to_phys(jump_addr),
>  		       src_base + SRC_GPR1 + cpu * 8);
>  }
>  
> -- 
> 1.7.5.4
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 6/7] ARM: highbank: remove incorrect BSYM usage
  2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
@ 2012-01-13 14:29   ` Dave Martin
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Martin @ 2012-01-13 14:29 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 12, 2012 at 11:31:15AM -0600, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> BSYM macro is only needed for assembly files and its usage in c files is
> wrong, so remove it. The linker will correctly set bit 0 for Thumb2
> kernels.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Dave Martin <dave.martin@linaro.org>

Acked-by: Dave Martin <dave.martin@linaro.org>

> ---
>  arch/arm/mach-highbank/highbank.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c
> index 804c4a5..7afbe1e 100644
> --- a/arch/arm/mach-highbank/highbank.c
> +++ b/arch/arm/mach-highbank/highbank.c
> @@ -25,7 +25,6 @@
>  #include <linux/smp.h>
>  
>  #include <asm/cacheflush.h>
> -#include <asm/unified.h>
>  #include <asm/smp_scu.h>
>  #include <asm/hardware/arm_timer.h>
>  #include <asm/hardware/timer-sp.h>
> @@ -76,7 +75,7 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
>  #ifdef CONFIG_SMP
>  	cpu = cpu_logical_map(cpu);
>  #endif
> -	writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu));
> +	writel(virt_to_phys(jump_addr), HB_JUMP_TABLE_VIRT(cpu));
>  	__cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
>  	outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
>  			  HB_JUMP_TABLE_PHYS(cpu) + 15);
> -- 
> 1.7.5.4
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 3/7] ARM: ux500: add missing ENDPROC to headsmp.S
  2012-01-13 14:24   ` Dave Martin
@ 2012-01-13 14:46     ` Rob Herring
  0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2012-01-13 14:46 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/13/2012 08:24 AM, Dave Martin wrote:
> On Thu, Jan 12, 2012 at 11:31:12AM -0600, Rob Herring wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> Once the ENDPROC is in place, BSYM() in not longer necessary
>> to get correct pointer to u8500_secondary_startup().
>>
>> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
>> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
>> Cc: Linus Walleij <linus.walleij@stericsson.com>
> 
> The words at label 1 may be misaligned in a Thumb kernel, which is
> undesirable.
> 
> It probably makes sense to add a .align 2 before that label
> as part of this patch.
> 

Not a new problem, but I'll fix that as well.

Rob

> Cheers
> ---Dave
> 
>> ---
>>  arch/arm/mach-ux500/headsmp.S |    1 +
>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-ux500/headsmp.S b/arch/arm/mach-ux500/headsmp.S
>> index 64fa451..d03843d 100644
>> --- a/arch/arm/mach-ux500/headsmp.S
>> +++ b/arch/arm/mach-ux500/headsmp.S
>> @@ -32,6 +32,7 @@ pen:	ldr	r7, [r6]
>>  	 * should now contain the SVC stack for this core
>>  	 */
>>  	b	secondary_startup
>> +ENDPROC(u8500_secondary_startup)
>>  
>>  1:	.long	.
>>  	.long	pen_release
>> -- 
>> 1.7.5.4
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-01-13 14:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-12 17:31 [PATCH v2 0/7] BSYM macro removal and secondary startup fixes Rob Herring
2012-01-12 17:31 ` [PATCH v2 1/7] ARM: versatile: Add missing ENDPROC to headsmp.S Rob Herring
2012-01-13 14:09   ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 2/7] ARM: msm: " Rob Herring
2012-01-12 17:31 ` [PATCH v2 3/7] ARM: ux500: add " Rob Herring
2012-01-13 14:24   ` Dave Martin
2012-01-13 14:46     ` Rob Herring
2012-01-12 17:31 ` [PATCH v2 4/7] ARM: exynos: remove incorrect BSYM usage Rob Herring
2012-01-13 14:24   ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 5/7] ARM: imx: " Rob Herring
2012-01-13 14:27   ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 6/7] ARM: highbank: " Rob Herring
2012-01-13 14:29   ` Dave Martin
2012-01-12 17:31 ` [PATCH v2 7/7] ARM: make BSYM macro assembly only Rob Herring
2012-01-13 14:10   ` Dave Martin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).