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

Commit 060a18c7 authored by Will Deacon's avatar Will Deacon Committed by Catalin Marinas
Browse files

arm64: signal: align return types for compat and native setup_return



setup_return is a void function, so make compat_setup_return look the
same rather then unconditionally return 0.

Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 304ef4e8
Loading
Loading
Loading
Loading
+5 −9
Original line number Original line Diff line number Diff line
@@ -605,7 +605,7 @@ static inline void __user *compat_get_sigframe(struct k_sigaction *ka,
	return frame;
	return frame;
}
}


static int compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka,
static void compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka,
				compat_ulong_t __user *rc, void __user *frame,
				compat_ulong_t __user *rc, void __user *frame,
				int usig)
				int usig)
{
{
@@ -643,8 +643,6 @@ static int compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka,
	regs->compat_lr	= retcode;
	regs->compat_lr	= retcode;
	regs->pc	= handler;
	regs->pc	= handler;
	regs->pstate	= spsr;
	regs->pstate	= spsr;

	return 0;
}
}


static int compat_setup_sigframe(struct compat_sigframe __user *sf,
static int compat_setup_sigframe(struct compat_sigframe __user *sf,
@@ -714,11 +712,9 @@ int compat_setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info,
	err |= __copy_to_user(&frame->sig.uc.uc_stack, &stack, sizeof(stack));
	err |= __copy_to_user(&frame->sig.uc.uc_stack, &stack, sizeof(stack));


	err |= compat_setup_sigframe(&frame->sig, regs, set);
	err |= compat_setup_sigframe(&frame->sig, regs, set);
	if (err == 0)
		err = compat_setup_return(regs, ka, frame->sig.retcode, frame,
					  usig);


	if (err == 0) {
	if (err == 0) {
		compat_setup_return(regs, ka, frame->sig.retcode, frame, usig);
		regs->regs[1] = (compat_ulong_t)(unsigned long)&frame->info;
		regs->regs[1] = (compat_ulong_t)(unsigned long)&frame->info;
		regs->regs[2] = (compat_ulong_t)(unsigned long)&frame->sig.uc;
		regs->regs[2] = (compat_ulong_t)(unsigned long)&frame->sig.uc;
	}
	}
@@ -741,7 +737,7 @@ int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set,


	err |= compat_setup_sigframe(frame, regs, set);
	err |= compat_setup_sigframe(frame, regs, set);
	if (err == 0)
	if (err == 0)
		err = compat_setup_return(regs, ka, frame->retcode, frame, usig);
		compat_setup_return(regs, ka, frame->retcode, frame, usig);


	return err;
	return err;
}
}