aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/entry.S')
-rw-r--r--arch/s390/kernel/entry.S22
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index c2773cff89c3..3705700ed374 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -184,16 +184,16 @@ sysc_vtime:
184 stm %r0,%r7,__PT_R0(%r11) 184 stm %r0,%r7,__PT_R0(%r11)
185 mvc __PT_R8(32,%r11),__LC_SAVE_AREA_SYNC 185 mvc __PT_R8(32,%r11),__LC_SAVE_AREA_SYNC
186 mvc __PT_PSW(8,%r11),__LC_SVC_OLD_PSW 186 mvc __PT_PSW(8,%r11),__LC_SVC_OLD_PSW
187 mvc __PT_SVC_CODE(4,%r11),__LC_SVC_ILC 187 mvc __PT_INT_CODE(4,%r11),__LC_SVC_ILC
188sysc_do_svc: 188sysc_do_svc:
189 oi __TI_flags+3(%r12),_TIF_SYSCALL 189 oi __TI_flags+3(%r12),_TIF_SYSCALL
190 lh %r8,__PT_SVC_CODE+2(%r11) 190 lh %r8,__PT_INT_CODE+2(%r11)
191 sla %r8,2 # shift and test for svc0 191 sla %r8,2 # shift and test for svc0
192 jnz sysc_nr_ok 192 jnz sysc_nr_ok
193 # svc 0: system call number in %r1 193 # svc 0: system call number in %r1
194 cl %r1,BASED(.Lnr_syscalls) 194 cl %r1,BASED(.Lnr_syscalls)
195 jnl sysc_nr_ok 195 jnl sysc_nr_ok
196 sth %r1,__PT_SVC_CODE+2(%r11) 196 sth %r1,__PT_INT_CODE+2(%r11)
197 lr %r8,%r1 197 lr %r8,%r1
198 sla %r8,2 198 sla %r8,2
199sysc_nr_ok: 199sysc_nr_ok:
@@ -266,9 +266,9 @@ sysc_sigpending:
266 jno sysc_return 266 jno sysc_return
267 lm %r2,%r7,__PT_R2(%r11) # load svc arguments 267 lm %r2,%r7,__PT_R2(%r11) # load svc arguments
268 xr %r8,%r8 # svc 0 returns -ENOSYS 268 xr %r8,%r8 # svc 0 returns -ENOSYS
269 clc __PT_SVC_CODE+2(2,%r11),BASED(.Lnr_syscalls+2) 269 clc __PT_INT_CODE+2(2,%r11),BASED(.Lnr_syscalls+2)
270 jnl sysc_nr_ok # invalid svc number -> do svc 0 270 jnl sysc_nr_ok # invalid svc number -> do svc 0
271 lh %r8,__PT_SVC_CODE+2(%r11) # load new svc number 271 lh %r8,__PT_INT_CODE+2(%r11) # load new svc number
272 sla %r8,2 272 sla %r8,2
273 j sysc_nr_ok # restart svc 273 j sysc_nr_ok # restart svc
274 274
@@ -300,7 +300,7 @@ sysc_tracesys:
300 lr %r2,%r11 # pass pointer to pt_regs 300 lr %r2,%r11 # pass pointer to pt_regs
301 la %r3,0 301 la %r3,0
302 xr %r0,%r0 302 xr %r0,%r0
303 icm %r0,3,__PT_SVC_CODE+2(%r11) 303 icm %r0,3,__PT_INT_CODE+2(%r11)
304 st %r0,__PT_R2(%r11) 304 st %r0,__PT_R2(%r11)
305 basr %r14,%r1 # call do_syscall_trace_enter 305 basr %r14,%r1 # call do_syscall_trace_enter
306 cl %r2,BASED(.Lnr_syscalls) 306 cl %r2,BASED(.Lnr_syscalls)
@@ -396,6 +396,8 @@ ENTRY(pgm_check_handler)
396 stm %r0,%r7,__PT_R0(%r11) 396 stm %r0,%r7,__PT_R0(%r11)
397 mvc __PT_R8(32,%r11),__LC_SAVE_AREA_SYNC 397 mvc __PT_R8(32,%r11),__LC_SAVE_AREA_SYNC
398 stm %r8,%r9,__PT_PSW(%r11) 398 stm %r8,%r9,__PT_PSW(%r11)
399 mvc __PT_INT_CODE(4,%r11),__LC_PGM_ILC
400 mvc __PT_INT_PARM_LONG(4,%r11),__LC_TRANS_EXC_CODE
399 tm __LC_PGM_ILC+3,0x80 # check for per exception 401 tm __LC_PGM_ILC+3,0x80 # check for per exception
400 jz 0f 402 jz 0f
401 l %r1,__TI_task(%r12) 403 l %r1,__TI_task(%r12)
@@ -405,13 +407,11 @@ ENTRY(pgm_check_handler)
405 mvc __THREAD_per_address(4,%r1),__LC_PER_ADDRESS 407 mvc __THREAD_per_address(4,%r1),__LC_PER_ADDRESS
406 mvc __THREAD_per_cause(2,%r1),__LC_PER_CAUSE 408 mvc __THREAD_per_cause(2,%r1),__LC_PER_CAUSE
407 mvc __THREAD_per_paid(1,%r1),__LC_PER_PAID 409 mvc __THREAD_per_paid(1,%r1),__LC_PER_PAID
4080: l %r3,__LC_PGM_ILC # load program interruption code 4100: REENABLE_IRQS
409 l %r4,__LC_TRANS_EXC_CODE
410 REENABLE_IRQS
411 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) 411 xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15)
412 l %r1,BASED(.Ljump_table) 412 l %r1,BASED(.Ljump_table)
413 la %r10,0x7f 413 la %r10,0x7f
414 nr %r10,%r3 414 n %r10,__PT_INT_CODE(%r11)
415 je sysc_return 415 je sysc_return
416 sll %r10,2 416 sll %r10,2
417 l %r1,0(%r10,%r1) # load address of handler routine 417 l %r1,0(%r10,%r1) # load address of handler routine
@@ -858,7 +858,7 @@ cleanup_system_call:
858 mvc __PT_R8(32,%r15),__LC_SAVE_AREA_SYNC 858 mvc __PT_R8(32,%r15),__LC_SAVE_AREA_SYNC
859 stm %r0,%r7,__PT_R0(%r15) 859 stm %r0,%r7,__PT_R0(%r15)
860 mvc __PT_PSW(8,%r15),__LC_SVC_OLD_PSW 860 mvc __PT_PSW(8,%r15),__LC_SVC_OLD_PSW
861 mvc __PT_SVC_CODE(4,%r15),__LC_SVC_ILC 861 mvc __PT_INT_CODE(4,%r15),__LC_SVC_ILC
862 # setup saved register 15 862 # setup saved register 15
863 ahi %r15,-STACK_FRAME_OVERHEAD 863 ahi %r15,-STACK_FRAME_OVERHEAD
864 st %r15,28(%r11) # r15 stack pointer 864 st %r15,28(%r11) # r15 stack pointer