summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2017-03-24 17:19:12 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2017-08-02 15:15:04 +0200
commitda594e3fff398a164c77dd728d9fbfc6880881e6 (patch)
treeda0d5ea913d5cbaf56aea802c2b65c0ab2d00190 /arch
parentARM: use aliases for registers in entry-common (diff)
downloadlinux-da594e3fff398a164c77dd728d9fbfc6880881e6.tar.xz
linux-da594e3fff398a164c77dd728d9fbfc6880881e6.zip
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>
Diffstat (limited to 'arch')
-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)
alignment_trap r10, ip, __cr_alignment
enable_irq
ct_user_exit
- get_thread_info tsk
/*
* Get the system call number.
@@ -209,6 +208,7 @@ ENTRY(vector_swi)
bic scno, scno, #0xff000000 @ mask off SWI op-code
eor scno, scno, #__NR_SYSCALL_BASE @ check OS number
#endif
+ get_thread_info tsk
local_restart:
ldr r10, [tsk, #TI_FLAGS] @ check for syscall tracing
@@ -240,6 +240,7 @@ local_restart:
9001:
sub lr, saved_pc, #4
str lr, [sp, #S_PC]
+ get_thread_info tsk
b ret_fast_syscall
#endif
ENDPROC(vector_swi)