Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
        sys     sys_mkdir               2
        sys     sys_rmdir               1       /* 4040 */
        sys     sys_dup                 1
-       sys     sys_pipe                0
+       sys     sysm_pipe               0
        sys     sys_times               1
        sys     sys_ni_syscall          0
        sys     sys_brk                 1       /* 4045 */
 
        PTR     sys_readv
        PTR     sys_writev
        PTR     sys_access                      /* 5020 */
-       PTR     sys_pipe
+       PTR     sysm_pipe
        PTR     sys_select
        PTR     sys_sched_yield
        PTR     sys_mremap
 
        PTR     compat_sys_readv
        PTR     compat_sys_writev
        PTR     sys_access                      /* 6020 */
-       PTR     sys_pipe
+       PTR     sysm_pipe
        PTR     compat_sys_select
        PTR     sys_sched_yield
        PTR     sys_mremap
 
        PTR     sys_mkdir
        PTR     sys_rmdir                       /* 4040 */
        PTR     sys_dup
-       PTR     sys_pipe
+       PTR     sysm_pipe
        PTR     compat_sys_times
        PTR     sys_ni_syscall
        PTR     sys_brk                         /* 4045 */
 
 #include <asm/sysmips.h>
 #include <asm/uaccess.h>
 
-asmlinkage int sys_pipe(nabi_no_regargs volatile struct pt_regs regs)
+/*
+ * For historic reasons the pipe(2) syscall on MIPS has an unusual calling
+ * convention.  It returns results in registers $v0 / $v1 which means there
+ * is no need for it to do verify the validity of a userspace pointer
+ * argument.  Historically that used to be expensive in Linux.  These days
+ * the performance advantage is negligible.
+ */
+asmlinkage int sysm_pipe(nabi_no_regargs volatile struct pt_regs regs)
 {
        int fd[2];
        int error, res;