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

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
...@@ -605,9 +605,9 @@ static inline void __user *compat_get_sigframe(struct k_sigaction *ka, ...@@ -605,9 +605,9 @@ 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)
{ {
compat_ulong_t handler = ptr_to_compat(ka->sa.sa_handler); compat_ulong_t handler = ptr_to_compat(ka->sa.sa_handler);
compat_ulong_t retcode; compat_ulong_t retcode;
...@@ -643,8 +643,6 @@ static int compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, ...@@ -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, ...@@ -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, ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment