patch-2.4.15 linux/arch/s390x/kernel/entry.S
Next file: linux/arch/s390x/kernel/head.S
Previous file: linux/arch/s390x/defconfig
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Fri Nov 9 13:58:02 2001
- Orig file:
v2.4.14/linux/arch/s390x/kernel/entry.S
- Orig date:
Tue Oct 23 22:48:50 2001
diff -u --recursive --new-file v2.4.14/linux/arch/s390x/kernel/entry.S linux/arch/s390x/kernel/entry.S
@@ -247,6 +247,17 @@
lghi %r2,-ENOSYS
stg %r2,SP_R2(%r15) # give sysc_trace an -ENOSYS retval
brasl %r14,syscall_trace
+ lg %r2,SP_R2(%r15)
+ cghi %r2,-ENOSYS
+ je sysc_tracesys_dn1
+ sllg %r2,%r2,56 # strace wants to change the syscall
+ srlg %r2,%r2,53 # zap unused bits & multiply by 8
+ tm SP_PSW+3(%r15),0x01 # are we running in 31 bit mode ?
+ jo sysc_tracesys_noemu
+ la %r2,4(%r2) # use 31 bit emulation system calls
+sysc_tracesys_noemu:
+ lgf %r8,0(%r2,%r7) # load address of system call routine
+sysc_tracesys_dn1:
lmg %r3,%r6,SP_R3(%r15)
lg %r2,SP_ORIG_R2(%r15)
basr %r14,%r8 # call sys_xxx
@@ -672,7 +683,6 @@
GET_CURRENT
pgm_no_sv:
llgh %r8,__LC_PGM_INT_CODE # N.B. saved int code used later KEEP it
- stosm 48(%r15),0x03 # reenable interrupts
lghi %r3,0x7f
nr %r3,%r8 # clear per-event-bit & move to r3
je pgm_dn # none of Martins exceptions occurred bypass
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)