Skip to content

Commit

Permalink
MIPS: sysmips: Rewrite to use SYSCALL_DEFINE3().
Browse files Browse the repository at this point in the history
Thanks to current_pt_regs() there is no need to use the dark MIPS magic.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Ralf Baechle committed Feb 1, 2013
1 parent 33722a2 commit bc4f297
Showing 1 changed file with 5 additions and 12 deletions.
17 changes: 5 additions & 12 deletions arch/mips/kernel/syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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 */

Expand All @@ -238,19 +239,11 @@ static inline int mips_atomic_set(struct pt_regs *regs,
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)
Expand Down

0 comments on commit bc4f297

Please sign in to comment.