diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2010-10-25 10:10:40 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-10-25 10:10:19 -0400 |
commit | baa071588c3ffcc1a8721faf9337140e85d34bf6 (patch) | |
tree | 5aefe1db8edbc3dfb956669e657368673ad601ef /arch/s390/kernel/entry64.S | |
parent | 178514d7e3e8cfba087b3a208e22a54ce65e8f34 (diff) |
[S390] cleanup system call parameter setup
Do the setup of the stack overflow argument for the sixth system
call parameter right before the branch to the system call function.
That simplifies the system call parameter access code.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/entry64.S')
-rw-r--r-- | arch/s390/kernel/entry64.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index e4038ea4dc57..a2be23922f43 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -246,7 +246,6 @@ sysc_saveall: | |||
246 | CREATE_STACK_FRAME __LC_SAVE_AREA | 246 | CREATE_STACK_FRAME __LC_SAVE_AREA |
247 | mvc SP_PSW(16,%r15),__LC_SVC_OLD_PSW | 247 | mvc SP_PSW(16,%r15),__LC_SVC_OLD_PSW |
248 | mvc SP_ILC(4,%r15),__LC_SVC_ILC | 248 | mvc SP_ILC(4,%r15),__LC_SVC_ILC |
249 | stg %r7,SP_ARGS(%r15) | ||
250 | lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct | 249 | lg %r12,__LC_THREAD_INFO # load pointer to thread_info struct |
251 | sysc_vtime: | 250 | sysc_vtime: |
252 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_SYNC_ENTER_TIMER,__LC_USER_TIMER | 251 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_SYNC_ENTER_TIMER,__LC_USER_TIMER |
@@ -274,6 +273,7 @@ sysc_nr_ok: | |||
274 | sysc_noemu: | 273 | sysc_noemu: |
275 | #endif | 274 | #endif |
276 | tm __TI_flags+6(%r12),_TIF_SYSCALL | 275 | tm __TI_flags+6(%r12),_TIF_SYSCALL |
276 | mvc SP_ARGS(8,%r15),SP_R7(%r15) | ||
277 | lgf %r8,0(%r7,%r10) # load address of system call routine | 277 | lgf %r8,0(%r7,%r10) # load address of system call routine |
278 | jnz sysc_tracesys | 278 | jnz sysc_tracesys |
279 | basr %r14,%r8 # call sys_xxxx | 279 | basr %r14,%r8 # call sys_xxxx |
@@ -387,6 +387,7 @@ sysc_tracesys: | |||
387 | lgf %r8,0(%r7,%r10) | 387 | lgf %r8,0(%r7,%r10) |
388 | sysc_tracego: | 388 | sysc_tracego: |
389 | lmg %r3,%r6,SP_R3(%r15) | 389 | lmg %r3,%r6,SP_R3(%r15) |
390 | mvc SP_ARGS(8,%r15),SP_R7(%r15) | ||
390 | lg %r2,SP_ORIG_R2(%r15) | 391 | lg %r2,SP_ORIG_R2(%r15) |
391 | basr %r14,%r8 # call sys_xxx | 392 | basr %r14,%r8 # call sys_xxx |
392 | stg %r2,SP_R2(%r15) # store return value | 393 | stg %r2,SP_R2(%r15) # store return value |
@@ -953,7 +954,6 @@ cleanup_system_call: | |||
953 | CREATE_STACK_FRAME __LC_SAVE_AREA | 954 | CREATE_STACK_FRAME __LC_SAVE_AREA |
954 | mvc SP_PSW(16,%r15),__LC_SVC_OLD_PSW | 955 | mvc SP_PSW(16,%r15),__LC_SVC_OLD_PSW |
955 | mvc SP_ILC(4,%r15),__LC_SVC_ILC | 956 | mvc SP_ILC(4,%r15),__LC_SVC_ILC |
956 | stg %r7,SP_ARGS(%r15) | ||
957 | mvc 8(8,%r12),__LC_THREAD_INFO | 957 | mvc 8(8,%r12),__LC_THREAD_INFO |
958 | cleanup_vtime: | 958 | cleanup_vtime: |
959 | clc __LC_RETURN_PSW+8(8),BASED(cleanup_system_call_insn+24) | 959 | clc __LC_RETURN_PSW+8(8),BASED(cleanup_system_call_insn+24) |