diff --git a/arch/arm/include/asm/parasite.h b/arch/arm/include/asm/parasite.h index 01c4d5899..4c4007fa6 100644 --- a/arch/arm/include/asm/parasite.h +++ b/arch/arm/include/asm/parasite.h @@ -1,28 +1,9 @@ #ifndef __ASM_PARASITE_H__ #define __ASM_PARASITE_H__ -static inline u32 arch_get_tls(void) { - u32 res; - - asm ( - "adr %%r1, 1f \n" - "ldr %%r1, [%%r1] \n" - "push { %%r7, %%lr } \n" - "blx %%r1 \n" - "pop { %%r7, %%lr } \n" - "mov %0, %%r0 \n" - "b 2f \n" - - "1: \n" - ".word 0xffff0fe0 \n" - - "2: \n" - :"=r"(res) - : - : "r0", "r1", "memory" - ); - - return res; +static inline u32 arch_get_tls(void) +{ + return ((u32 (*)())0xffff0fe0)(); } #endif