patch-2.4.19 linux-2.4.19/arch/mips/kernel/sysmips.c
Next file: linux-2.4.19/arch/mips/kernel/time.c
Previous file: linux-2.4.19/arch/mips/kernel/sysirix.c
Back to the patch index
Back to the overall index
- Lines: 99
- Date:
Fri Aug 2 17:39:43 2002
- Orig file:
linux-2.4.18/arch/mips/kernel/sysmips.c
- Orig date:
Mon Jul 2 13:56:40 2001
diff -urN linux-2.4.18/arch/mips/kernel/sysmips.c linux-2.4.19/arch/mips/kernel/sysmips.c
@@ -1,13 +1,11 @@
/*
- * MIPS specific syscalls
- *
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
- * Copyright (C) 1995, 1996, 1997, 2000 by Ralf Baechle
+ * Copyright (C) 1995, 1996, 1997, 2000, 2001 by Ralf Baechle
+ * Copyright (C) 2001 MIPS Technologies, Inc.
*/
-#include <linux/config.h>
#include <linux/errno.h>
#include <linux/linkage.h>
#include <linux/mm.h>
@@ -48,11 +46,10 @@
}
asmlinkage int
-sys_sysmips(int cmd, int arg1, int arg2, int arg3)
+_sys_sysmips(int cmd, int arg1, int arg2, int arg3)
{
- int *p;
char *name;
- int tmp, len, retval, errno;
+ int tmp, len, retval;
switch(cmd) {
case SETNAME: {
@@ -74,55 +71,10 @@
return 0;
}
- case MIPS_ATOMIC_SET: {
-#ifdef CONFIG_CPU_HAS_LLSC
- unsigned int tmp;
-
- p = (int *) arg1;
- errno = verify_area(VERIFY_WRITE, p, sizeof(*p));
- if (errno)
- return errno;
- errno = 0;
-
- __asm__(".set\tpush\t\t\t# sysmips(MIPS_ATOMIC, ...)\n\t"
- ".set\tmips2\n\t"
- ".set\tnoat\n\t"
- "1:\tll\t%0, %4\n\t"
- "move\t$1, %3\n\t"
- "2:\tsc\t$1, %1\n\t"
- "beqz\t$1, 1b\n\t"
- ".set\tpop\n\t"
- ".section\t.fixup,\"ax\"\n"
- "3:\tli\t%2, 1\t\t\t# error\n\t"
- ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
- ".word\t1b, 3b\n\t"
- ".word\t2b, 3b\n\t"
- ".previous\n\t"
- : "=&r" (tmp), "=o" (* (u32 *) p), "=r" (errno)
- : "r" (arg2), "o" (* (u32 *) p), "2" (errno)
- : "$1");
-
- if (errno)
- return -EFAULT;
-
- /* We're skipping error handling etc. */
- if (current->ptrace & PT_TRACESYS)
- syscall_trace();
-
- ((struct pt_regs *)&cmd)->regs[2] = tmp;
- ((struct pt_regs *)&cmd)->regs[7] = 0;
-
- __asm__ __volatile__(
- "move\t$29, %0\n\t"
- "j\to32_ret_from_sys_call"
- : /* No outputs */
- : "r" (&cmd));
- /* Unreached */
-#else
- printk("sys_sysmips(MIPS_ATOMIC_SET, ...) not ready for !CONFIG_CPU_HAS_LLSC\n");
-#endif
- }
+ case MIPS_ATOMIC_SET:
+ printk(KERN_CRIT "How did I get here?\n");
+ retval = -EINVAL;
+ goto out;
case MIPS_FIXADE:
tmp = current->thread.mflags & ~3;
@@ -131,7 +83,7 @@
goto out;
case FLUSH_CACHE:
- flush_cache_all();
+ __flush_cache_all();
retval = 0;
goto out;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)