Module: xenomai-forge Branch: next Commit: b80e9f5ad94624429e2cf5fbdf214d2692b11311 URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=b80e9f5ad94624429e2cf5fbdf214d2692b11311
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Sun Mar 30 11:20:10 2014 +0200 cobalt/arm: fixup for kernel 3.11 --- kernel/cobalt/arch/arm/switch.S | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/kernel/cobalt/arch/arm/switch.S b/kernel/cobalt/arch/arm/switch.S index cbd472a..5a4ecbc 100644 --- a/kernel/cobalt/arch/arm/switch.S +++ b/kernel/cobalt/arch/arm/switch.S @@ -95,6 +95,21 @@ ENTRY(__asm_vfp_load) ENDPROC(__asm_vfp_load) #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0) + .macro load_tls base, tp, tpuser + ldr \tp, [\base, #TI_TP_VALUE] + .endm + + .macro switch_tls base, tp, tpuser, tmp1, tmp2 + set_tls \tp, \tmp1, \tmp2 + .endm +#else + .macro load_tls base, tp, tpuser + ldr \tp, [\base, #TI_TP_VALUE] + ldr \tpuser, [\base, #TI_TP_VALUE + 4] + .endm +#endif + /* /* * Switch context routine. @@ -122,15 +137,15 @@ ENDPROC(__asm_vfp_load) */ ENTRY(__asm_thread_switch) add ip, r0, #TI_CPU_SAVE - ldr r3, [r1, #TI_TP_VALUE] ARM( stmia ip!, {r4 - sl, fp, sp, lr} ) @ Store most regs on stack THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack THUMB( str sp, [ip], #4 ) THUMB( str lr, [ip], #4 ) + load_tls r2, r4, r5 #ifdef CONFIG_CPU_USE_DOMAINS ldr r6, [r1, #TI_CPU_DOMAIN] #endif - set_tls r3, r4, r5 + switch_tls r1, r4, r5, r3, r7 #ifdef CONFIG_CPU_USE_DOMAINS mcr p15, 0, r6, c3, c0, 0 @ Set domain register #endif _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://www.xenomai.org/mailman/listinfo/xenomai-git