ARM: mach-shmobile: sh73a0 twd_base fix
Magnus Damm
maintainerPATCH 1/1 ARM: mach-shmobile: sh73a0 twd_base fix
From: Magnus Damm <[email protected]>
Fix the case of too late twd_base initialization for SMP on sh73a0 which bas been broken because sh73a0 specific smp_prepare_cpu() and percpu_timer_setup() changed order in the commits:
05c74a6cbcfb416286a947668ba32f63d99fe74ac413521eb4e2d7ffd5ce432a144708d479054bd3
Without this fix the sh73a0 SMP kernel panics on boot.
---
arch/arm/mach-shmobile/smp-sh73a0.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-shmobile/smp-sh73a0.c +5 -4
@@ -59,6 +59,11 @@ unsigned int __init sh73a0_get_core_coun {void __iomem *scu_base =scu_base_addr (); +#ifdef CONFIG_HAVE_ARM_TWD +/* twd_base needs to be initialized before percpu_timer_setup() */ + twd_base = (void __iomem *)0xf0000600 ; +#endif +return scu_get_core_count (scu_base); }
@@ -82,10 +87,6 @@ int __cpuinit sh73a0_boot_secondary(unsivoid __init sh73a0_smp_prepare_cpus (void ) { -#ifdef CONFIG_HAVE_ARM_TWD - twd_base = (void __iomem *)0xf0000600 ; -#endif -scu_enable (scu_base_addr ());/* Map the reset vector (in headsmp.S) */
PATCH 1/1 ARM: mach-shmobile: sh73a0 twd_base fix
Quoted 21 lines · Magnus Damm
From: Magnus Damm<[email protected]>
Fix the case of too late
twd_baseinitialization for SMP on sh73a0 which bas been broken because sh73a0 specificsmp_prepare_cpu()andpercpu_timer_setup()changed order in the commits:
05c74a6cbcfb416286a947668ba32f63d99fe74ac413521eb4e2d7ffd5ce432a144708d479054bd3Without this fix the sh73a0 SMP kernel panics on boot.
Signed-off-by Magnus Damm<[email protected]>---
arch/arm/mach-shmobile/smp-sh73a0.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-shmobile/smp-sh73a0.c unsigned int __init sh73a0_get_core_coun · line 64
Quoted 6 lines
arch/arm/mach-shmobile/smp-sh73a0.c +3
-0@@ -59,6 +59,11 @@ unsigned int __init sh73a0_get_core_coun {void __iomem *scu_base =scu_base_addr (); +#ifdef CONFIG_HAVE_ARM_TWD +/* twd_base needs to be initialized before percpu_timer_setup() */ + twd_base = (void __iomem *)0xf0000600 ;
You might want to ioremap(PA) instead of hard-coding it. Even if you want a fixed VA, at least use macro.
Regards,
Santosh
PATCH 1/1 ARM: mach-shmobile: sh73a0 twd_base fix
In reply to Magnus DammHello.
Quoted 9 lines · Magnus Damm
From: Magnus Damm<[email protected]>
Fix the case of too late
twd_baseinitialization for SMP on sh73a0 which bas been broken because sh73a0 specificsmp_prepare_cpu()andpercpu_timer_setup()changed order in the commits:
05c74a6cbcfb416286a947668ba32f63d99fe74ac413521eb4e2d7ffd5ce432a144708d479054bd3
Please also specify those commits' summaries -- for the human readers.
Quoted 3 lines
Without this fix the sh73a0 SMP kernel panics on boot.
Signed-off-by Magnus Damm<[email protected]>
WBR, Sergei