Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6489c14 authored by Al Viro's avatar Al Viro
Browse files

Merge commit '12890d0f' into arch-mips

parents 0aa0203f 12890d0f
Loading
Loading
Loading
Loading
+6 −13
Original line number Original line Diff line number Diff line
@@ -138,10 +138,10 @@ SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
	return 0;
	return 0;
}
}


static inline int mips_atomic_set(struct pt_regs *regs,
static inline int mips_atomic_set(unsigned long addr, unsigned long new)
	unsigned long addr, unsigned long new)
{
{
	unsigned long old, tmp;
	unsigned long old, tmp;
	struct pt_regs *regs;
	unsigned int err;
	unsigned int err;


	if (unlikely(addr & 3))
	if (unlikely(addr & 3))
@@ -222,6 +222,7 @@ static inline int mips_atomic_set(struct pt_regs *regs,
	if (unlikely(err))
	if (unlikely(err))
		return err;
		return err;


	regs = current_pt_regs();
	regs->regs[2] = old;
	regs->regs[2] = old;
	regs->regs[7] = 0;	/* No error */
	regs->regs[7] = 0;	/* No error */


@@ -235,22 +236,14 @@ static inline int mips_atomic_set(struct pt_regs *regs,
	: "r" (regs));
	: "r" (regs));


	/* unreached.  Honestly.  */
	/* unreached.  Honestly.  */
	while (1);
	unreachable();
}
}


save_static_function(sys_sysmips);
SYSCALL_DEFINE3(sysmips, long, cmd, long, arg1, long, arg2)
static int __used noinline
_sys_sysmips(nabi_no_regargs struct pt_regs regs)
{
{
	long cmd, arg1, arg2;

	cmd = regs.regs[4];
	arg1 = regs.regs[5];
	arg2 = regs.regs[6];

	switch (cmd) {
	switch (cmd) {
	case MIPS_ATOMIC_SET:
	case MIPS_ATOMIC_SET:
		return mips_atomic_set(&regs, arg1, arg2);
		return mips_atomic_set(arg1, arg2);


	case MIPS_FIXADE:
	case MIPS_FIXADE:
		if (arg1 & ~3)
		if (arg1 & ~3)