diff options
author | Will Deacon <will.deacon@arm.com> | 2012-11-23 06:01:03 -0500 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2012-11-23 13:11:37 -0500 |
commit | 060a18c7e3d52bdb2ff70dcc09f23dcf1656e6c8 (patch) | |
tree | 5bc9cabf72831369cd8cb5fa003d9ea80defd79e | |
parent | 304ef4e8367244b547734143c792a2ab764831e8 (diff) |
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: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-rw-r--r-- | arch/arm64/kernel/signal32.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c index 4654824747a4..8f96fc9656db 100644 --- a/arch/arm64/kernel/signal32.c +++ b/arch/arm64/kernel/signal32.c | |||
@@ -605,9 +605,9 @@ static inline void __user *compat_get_sigframe(struct k_sigaction *ka, | |||
605 | return frame; | 605 | return frame; |
606 | } | 606 | } |
607 | 607 | ||
608 | static int compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, | 608 | static void compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, |
609 | compat_ulong_t __user *rc, void __user *frame, | 609 | compat_ulong_t __user *rc, void __user *frame, |
610 | int usig) | 610 | int usig) |
611 | { | 611 | { |
612 | compat_ulong_t handler = ptr_to_compat(ka->sa.sa_handler); | 612 | compat_ulong_t handler = ptr_to_compat(ka->sa.sa_handler); |
613 | compat_ulong_t retcode; | 613 | compat_ulong_t retcode; |
@@ -643,8 +643,6 @@ static int compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, | |||
643 | regs->compat_lr = retcode; | 643 | regs->compat_lr = retcode; |
644 | regs->pc = handler; | 644 | regs->pc = handler; |
645 | regs->pstate = spsr; | 645 | regs->pstate = spsr; |
646 | |||
647 | return 0; | ||
648 | } | 646 | } |
649 | 647 | ||
650 | static int compat_setup_sigframe(struct compat_sigframe __user *sf, | 648 | 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 | err |= __copy_to_user(&frame->sig.uc.uc_stack, &stack, sizeof(stack)); | 712 | err |= __copy_to_user(&frame->sig.uc.uc_stack, &stack, sizeof(stack)); |
715 | 713 | ||
716 | err |= compat_setup_sigframe(&frame->sig, regs, set); | 714 | err |= compat_setup_sigframe(&frame->sig, regs, set); |
717 | if (err == 0) | ||
718 | err = compat_setup_return(regs, ka, frame->sig.retcode, frame, | ||
719 | usig); | ||
720 | 715 | ||
721 | if (err == 0) { | 716 | if (err == 0) { |
717 | compat_setup_return(regs, ka, frame->sig.retcode, frame, usig); | ||
722 | regs->regs[1] = (compat_ulong_t)(unsigned long)&frame->info; | 718 | regs->regs[1] = (compat_ulong_t)(unsigned long)&frame->info; |
723 | regs->regs[2] = (compat_ulong_t)(unsigned long)&frame->sig.uc; | 719 | regs->regs[2] = (compat_ulong_t)(unsigned long)&frame->sig.uc; |
724 | } | 720 | } |
@@ -741,7 +737,7 @@ int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set, | |||
741 | 737 | ||
742 | err |= compat_setup_sigframe(frame, regs, set); | 738 | err |= compat_setup_sigframe(frame, regs, set); |
743 | if (err == 0) | 739 | if (err == 0) |
744 | err = compat_setup_return(regs, ka, frame->retcode, frame, usig); | 740 | compat_setup_return(regs, ka, frame->retcode, frame, usig); |
745 | 741 | ||
746 | return err; | 742 | return err; |
747 | } | 743 | } |