diff options
author | Brian Gerst <brgerst@gmail.com> | 2022-06-06 16:37:55 -0400 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2022-10-19 09:58:48 +0200 |
commit | 8bb2d28e2b92ef220e82369ff31a22f39831cf2f (patch) | |
tree | 104a2e20dfa508fe79529e36e18e3d6c3bf8092b /arch/x86/kernel/signal.c | |
parent | a27e292b8a54e24f85181d949fac8c51fdec8ff3 (diff) |
x86/signal: Remove sig parameter from frame setup functions
Passing the signal number as a separate parameter is unnecessary, since
it is always ksig->sig.
Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Link: https://lore.kernel.org/r/20220606203802.158958-2-brgerst@gmail.com
Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'arch/x86/kernel/signal.c')
-rw-r--r-- | arch/x86/kernel/signal.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c index 9c7265b524c7..40b1373bb70b 100644 --- a/arch/x86/kernel/signal.c +++ b/arch/x86/kernel/signal.c @@ -324,7 +324,7 @@ static const struct { }; static int -__setup_frame(int sig, struct ksignal *ksig, sigset_t *set, +__setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) { struct sigframe __user *frame; @@ -336,7 +336,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, if (!user_access_begin(frame, sizeof(*frame))) return -EFAULT; - unsafe_put_user(sig, &frame->sig, Efault); + unsafe_put_user(ksig->sig, &frame->sig, Efault); unsafe_put_sigcontext(&frame->sc, fp, regs, set, Efault); unsafe_put_user(set->sig[1], &frame->extramask[0], Efault); if (current->mm->context.vdso) @@ -363,7 +363,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, /* Set up registers for signal handler */ regs->sp = (unsigned long)frame; regs->ip = (unsigned long)ksig->ka.sa.sa_handler; - regs->ax = (unsigned long)sig; + regs->ax = (unsigned long)ksig->sig; regs->dx = 0; regs->cx = 0; @@ -379,7 +379,7 @@ Efault: return -EFAULT; } -static int __setup_rt_frame(int sig, struct ksignal *ksig, +static int __setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) { struct rt_sigframe __user *frame; @@ -391,7 +391,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig, if (!user_access_begin(frame, sizeof(*frame))) return -EFAULT; - unsafe_put_user(sig, &frame->sig, Efault); + unsafe_put_user(ksig->sig, &frame->sig, Efault); unsafe_put_user(&frame->info, &frame->pinfo, Efault); unsafe_put_user(&frame->uc, &frame->puc, Efault); @@ -428,7 +428,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig, /* Set up registers for signal handler */ regs->sp = (unsigned long)frame; regs->ip = (unsigned long)ksig->ka.sa.sa_handler; - regs->ax = (unsigned long)sig; + regs->ax = (unsigned long)ksig->sig; regs->dx = (unsigned long)&frame->info; regs->cx = (unsigned long)&frame->uc; @@ -458,7 +458,7 @@ static unsigned long frame_uc_flags(struct pt_regs *regs) return flags; } -static int __setup_rt_frame(int sig, struct ksignal *ksig, +static int __setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) { struct rt_sigframe __user *frame; @@ -493,7 +493,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig, } /* Set up registers for signal handler */ - regs->di = sig; + regs->di = ksig->sig; /* In case the signal handler was declared without prototypes */ regs->ax = 0; @@ -763,7 +763,6 @@ static inline int is_x32_frame(struct ksignal *ksig) static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) { - int usig = ksig->sig; sigset_t *set = sigmask_to_save(); compat_sigset_t *cset = (compat_sigset_t *) set; @@ -773,13 +772,13 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) /* Set up the stack frame */ if (is_ia32_frame(ksig)) { if (ksig->ka.sa.sa_flags & SA_SIGINFO) - return ia32_setup_rt_frame(usig, ksig, cset, regs); + return ia32_setup_rt_frame(ksig, cset, regs); else - return ia32_setup_frame(usig, ksig, cset, regs); + return ia32_setup_frame(ksig, cset, regs); } else if (is_x32_frame(ksig)) { return x32_setup_rt_frame(ksig, cset, regs); } else { - return __setup_rt_frame(ksig->sig, ksig, set, regs); + return __setup_rt_frame(ksig, set, regs); } } |