On 06. 08. 19 5:07, Luis Araneda wrote: > Add .arm directive to headsmp.S to ensure that the > CPU starts in 32-bit ARM mode and the correct code > size is copied on smp bring-up > > Additionally, start secondary CPUs on secondary_startup_arm > to automatically switch from ARM to thumb on a thumb kernel > > Suggested-by: Michal Simek <michal.simek@xxxxxxxxxx> > Signed-off-by: Luis Araneda <luaraneda@xxxxxxxxx> > --- > arch/arm/mach-zynq/headsmp.S | 2 ++ > arch/arm/mach-zynq/platsmp.c | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mach-zynq/headsmp.S b/arch/arm/mach-zynq/headsmp.S > index ab85003cf9ad..3449e0d1f990 100644 > --- a/arch/arm/mach-zynq/headsmp.S > +++ b/arch/arm/mach-zynq/headsmp.S > @@ -7,6 +7,8 @@ > #include <linux/init.h> > #include <asm/assembler.h> > > + .arm > + > ENTRY(zynq_secondary_trampoline) > ARM_BE8(setend be) @ ensure we are in BE8 mode > ldr r0, zynq_secondary_trampoline_jump > diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c > index a7cfe07156f4..38728badabd4 100644 > --- a/arch/arm/mach-zynq/platsmp.c > +++ b/arch/arm/mach-zynq/platsmp.c > @@ -81,7 +81,7 @@ EXPORT_SYMBOL(zynq_cpun_start); > > static int zynq_boot_secondary(unsigned int cpu, struct task_struct *idle) > { > - return zynq_cpun_start(__pa_symbol(secondary_startup), cpu); > + return zynq_cpun_start(__pa_symbol(secondary_startup_arm), cpu); > } > > /* > It is really a question if this should go to stable tree. It is pretty much new feature. Will be good to also add link to similar patch for example this one 5616f36713ea77f57ae908bf2fef641364403c9f. M