aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2017-03-24 12:19:12 -0400
committerRussell King <rmk+kernel@armlinux.org.uk>2017-08-02 09:15:04 -0400
commitda594e3fff398a164c77dd728d9fbfc6880881e6 (patch)
treeda0d5ea913d5cbaf56aea802c2b65c0ab2d00190
parent309ee04257d473ce87f2c7e99f6d69e933d307e3 (diff)
ARM: obtain thread info structure later
Obtain the thread info structure later in the syscall processing, so that we free up a register for earlier code. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r--arch/arm/kernel/entry-common.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 9abe47a206d9..374c28723547 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -152,7 +152,6 @@ ENTRY(vector_swi)
152 alignment_trap r10, ip, __cr_alignment 152 alignment_trap r10, ip, __cr_alignment
153 enable_irq 153 enable_irq
154 ct_user_exit 154 ct_user_exit
155 get_thread_info tsk
156 155
157 /* 156 /*
158 * Get the system call number. 157 * Get the system call number.
@@ -209,6 +208,7 @@ ENTRY(vector_swi)
209 bic scno, scno, #0xff000000 @ mask off SWI op-code 208 bic scno, scno, #0xff000000 @ mask off SWI op-code
210 eor scno, scno, #__NR_SYSCALL_BASE @ check OS number 209 eor scno, scno, #__NR_SYSCALL_BASE @ check OS number
211#endif 210#endif
211 get_thread_info tsk
212 212
213local_restart: 213local_restart:
214 ldr r10, [tsk, #TI_FLAGS] @ check for syscall tracing 214 ldr r10, [tsk, #TI_FLAGS] @ check for syscall tracing
@@ -240,6 +240,7 @@ local_restart:
2409001: 2409001:
241 sub lr, saved_pc, #4 241 sub lr, saved_pc, #4
242 str lr, [sp, #S_PC] 242 str lr, [sp, #S_PC]
243 get_thread_info tsk
243 b ret_fast_syscall 244 b ret_fast_syscall
244#endif 245#endif
245ENDPROC(vector_swi) 246ENDPROC(vector_swi)