]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge commit '12890d0f61fc' into arch-mips
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:16:33 +0000 (18:16 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:16:33 +0000 (18:16 -0500)
arch/mips/kernel/syscall.c

index 201cb76b4df9d85abf01e2d45aea5b941a612378..107307d583eb73d10151ec2d4ef64ae23d5e2788 100644 (file)
@@ -138,10 +138,10 @@ SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
        return 0;
 }
 
-static inline int mips_atomic_set(struct pt_regs *regs,
-       unsigned long addr, unsigned long new)
+static inline int mips_atomic_set(unsigned long addr, unsigned long new)
 {
        unsigned long old, tmp;
+       struct pt_regs *regs;
        unsigned int err;
 
        if (unlikely(addr & 3))
@@ -222,6 +222,7 @@ static inline int mips_atomic_set(struct pt_regs *regs,
        if (unlikely(err))
                return err;
 
+       regs = current_pt_regs();
        regs->regs[2] = old;
        regs->regs[7] = 0;      /* No error */
 
@@ -235,22 +236,14 @@ static inline int mips_atomic_set(struct pt_regs *regs,
        : "r" (regs));
 
        /* unreached.  Honestly.  */
-       while (1);
+       unreachable();
 }
 
-save_static_function(sys_sysmips);
-static int __used noinline
-_sys_sysmips(nabi_no_regargs struct pt_regs regs)
+SYSCALL_DEFINE3(sysmips, long, cmd, long, arg1, long, arg2)
 {
-       long cmd, arg1, arg2;
-
-       cmd = regs.regs[4];
-       arg1 = regs.regs[5];
-       arg2 = regs.regs[6];
-
        switch (cmd) {
        case MIPS_ATOMIC_SET:
-               return mips_atomic_set(&regs, arg1, arg2);
+               return mips_atomic_set(arg1, arg2);
 
        case MIPS_FIXADE:
                if (arg1 & ~3)