patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / arch / mips / kernel / scall64-n32.S
index 6a89b53..9993a8a 100644 (file)
@@ -36,21 +36,26 @@ NESTED(handle_sysn32, PT_SIZE, sp)
        STI
        .set    at
 #endif
-       ld      t1, PT_EPC(sp)          # skip syscall on return
 
        subu    t0, v0, __NR_N32_Linux  # check syscall number
        sltiu   t0, t0, __NR_N32_Linux_syscalls + 1
+
+#ifndef CONFIG_MIPS32_O32
+       ld      t1, PT_EPC(sp)          # skip syscall on return
        daddiu  t1, 4                   # skip to next instruction
-       beqz    t0, not_n32_scall
        sd      t1, PT_EPC(sp)
+#endif
+       beqz    t0, not_n32_scall
 
        dsll    t0, v0, 3               # offset into table
        ld      t2, (sysn32_call_table - (__NR_N32_Linux * 8))(t0)
 
        sd      a3, PT_R26(sp)          # save a3 for syscall restarting
 
+       li      t1, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
        LONG_L  t0, TI_FLAGS($28)       # syscall tracing enabled?
-       bltz    t0, n32_syscall_trace_entry
+       and     t0, t1, t0
+       bnez    t0, n32_syscall_trace_entry
 
        jalr    t2                      # Do The Real Thing (TM)
 
@@ -82,6 +87,8 @@ n32_syscall_exit_work:
 n32_syscall_trace_entry:
        SAVE_STATIC
        sd      t2,PT_R1(sp)
+       move    a0, sp
+       li      a1, 0
        jal     do_syscall_trace
        ld      t2,PT_R1(sp)
 
@@ -128,11 +135,11 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_ioctl                /* 6015 */
        PTR     sys_pread64
        PTR     sys_pwrite64
-       PTR     sys32_readv
-       PTR     sys32_writev
+       PTR     compat_sys_readv
+       PTR     compat_sys_writev
        PTR     sys_access                      /* 6020 */
        PTR     sys_pipe
-       PTR     sys32_select
+       PTR     compat_sys_select
        PTR     sys_sched_yield
        PTR     sys_mremap
        PTR     sys_msync                       /* 6025 */
@@ -341,3 +348,12 @@ EXPORT(sysn32_call_table)
        PTR     sys_clock_nanosleep
        PTR     sys_tgkill
        PTR     compat_sys_utimes               /* 6230 */
+       PTR     sys_ni_syscall                  /* sys_mbind */
+       PTR     sys_ni_syscall                  /* sys_get_mempolicy */
+       PTR     sys_ni_syscall                  /* sys_set_mempolicy */
+       PTR     compat_sys_mq_open
+       PTR     sys_mq_unlink                   /* 6235 */
+       PTR     compat_sys_mq_timedsend
+       PTR     compat_sys_mq_timedreceive
+       PTR     compat_sys_mq_notify
+       PTR     compat_sys_mq_getsetattr        /* 6239 */