This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / s390 / kernel / entry.S
index d5a9e1c..4cce894 100644 (file)
@@ -239,7 +239,7 @@ sysc_enter:
 sysc_do_restart:
        tm      __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
         l       %r8,sys_call_table-system_call(%r7,%r13) # get system call addr.
-        b     BASED(sysc_tracesys)
+        bnz     BASED(sysc_tracesys)
         basr    %r14,%r8          # call sys_xxxx
         st      %r2,SP_R2(%r15)   # store return value (change R2 on stack)
                                   # ATTENTION: check sys_execve_glue before
@@ -328,7 +328,7 @@ sysc_tracego:
        st      %r2,SP_R2(%r15)   # store return value
 sysc_tracenogo:
        tm      __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
-        bno     BASED(sysc_return)
+        b     BASED(sysc_return)
        l       %r1,BASED(.Ltrace)
        la      %r2,SP_PTREGS(%r15)    # load pt_regs
        la      %r3,1
@@ -471,9 +471,10 @@ pgm_per:
 pgm_per_std:
        SAVE_ALL __LC_PGM_OLD_PSW,__LC_SAVE_AREA,1
        GET_THREAD_INFO
-       mvc     __THREAD_per+__PER_atmid(2,%r9),__LC_PER_ATMID
-       mvc     __THREAD_per+__PER_address(4,%r9),__LC_PER_ADDRESS
-       mvc     __THREAD_per+__PER_access_id(1,%r9),__LC_PER_ACCESS_ID
+       l       %r1,__TI_task(%r9)
+       mvc     __THREAD_per+__PER_atmid(2,%r1),__LC_PER_ATMID
+       mvc     __THREAD_per+__PER_address(4,%r1),__LC_PER_ADDRESS
+       mvc     __THREAD_per+__PER_access_id(1,%r1),__LC_PER_ACCESS_ID
        la      %r4,0x7f
        l       %r3,__LC_PGM_ILC         # load program interruption code
         nr      %r4,%r3                  # clear per-event-bit and ilc
@@ -495,11 +496,12 @@ pgm_per_only:
 pgm_svcper:
        SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1
        lh      %r7,0x8a          # get svc number from lowcore
-        stosm   24(%r15),0x03     # reenable interrupts
         GET_THREAD_INFO           # load pointer to task_struct to R9
-       mvc     __THREAD_per+__PER_atmid(2,%r9),__LC_PER_ATMID
-       mvc     __THREAD_per+__PER_address(4,%r9),__LC_PER_ADDRESS
-       mvc     __THREAD_per+__PER_access_id(1,%r9),__LC_PER_ACCESS_ID
+       l       %r1,__TI_task(%r9)
+       mvc     __THREAD_per+__PER_atmid(2,%r1),__LC_PER_ATMID
+       mvc     __THREAD_per+__PER_address(4,%r1),__LC_PER_ADDRESS
+       mvc     __THREAD_per+__PER_access_id(1,%r1),__LC_PER_ACCESS_ID
+        stosm   24(%r15),0x03     # reenable interrupts
         sla     %r7,2             # *4 and test for svc 0
        bnz     BASED(pgm_svcstd) # svc number > 0 ?
        # svc 0: system call number in %r1
@@ -510,7 +512,7 @@ pgm_svcper:
 pgm_svcstd:
        tm      __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
         l       %r8,sys_call_table-system_call(%r7,%r13) # get system call addr.
-        b     BASED(pgm_tracesys)
+        bnz     BASED(pgm_tracesys)
         basr    %r14,%r8          # call sys_xxxx
         st      %r2,SP_R2(%r15)   # store return value (change R2 on stack)
                                   # ATTENTION: check sys_execve_glue before
@@ -552,7 +554,7 @@ pgm_svc_go:
         st      %r2,SP_R2(%r15)   # store return value
 pgm_svc_nogo:
        tm      __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
-        bno     BASED(pgm_svcret)
+        b     BASED(pgm_svcret)
         l       %r1,BASED(.Ltrace)
        la      %r2,SP_PTREGS(%r15)    # load pt_regs
        la      %r3,1