x86: coding style fixes to arch/x86/kernel/signal_64.c
Fix all errors and many warnings reported by checkpatch.pl without change signal_64.o arch/x86/kernel/signal_64.o text data bss dec hex filename 5143 0 8 5151 141f signal_64.o.after 5143 0 8 5151 141f signal_64.o.before md5: e68718092b3641cb27e79e55ce57e3ad signal_64.o.after e68718092b3641cb27e79e55ce57e3ad signal_64.o.before Signed-off-by: Gustavo F. Padovan <gustavo@las.ic.unicamp.br> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
08aadf069d
commit
caa007dd36
|
@ -24,4 +24,9 @@ struct rt_sigframe {
|
||||||
struct ucontext uc;
|
struct ucontext uc;
|
||||||
struct siginfo info;
|
struct siginfo info;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
|
sigset_t *set, struct pt_regs *regs);
|
||||||
|
int ia32_setup_frame(int sig, struct k_sigaction *ka,
|
||||||
|
sigset_t *set, struct pt_regs *regs);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,9 +19,10 @@
|
||||||
#include <linux/stddef.h>
|
#include <linux/stddef.h>
|
||||||
#include <linux/personality.h>
|
#include <linux/personality.h>
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/ucontext.h>
|
#include <asm/ucontext.h>
|
||||||
#include <asm/uaccess.h>
|
|
||||||
#include <asm/i387.h>
|
#include <asm/i387.h>
|
||||||
#include <asm/proto.h>
|
#include <asm/proto.h>
|
||||||
#include <asm/ia32_unistd.h>
|
#include <asm/ia32_unistd.h>
|
||||||
|
@ -41,11 +42,6 @@
|
||||||
# define FIX_EFLAGS __FIX_EFLAGS
|
# define FIX_EFLAGS __FIX_EFLAGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
|
||||||
sigset_t *set, struct pt_regs * regs);
|
|
||||||
int ia32_setup_frame(int sig, struct k_sigaction *ka,
|
|
||||||
sigset_t *set, struct pt_regs * regs);
|
|
||||||
|
|
||||||
asmlinkage long
|
asmlinkage long
|
||||||
sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
|
sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
|
||||||
struct pt_regs *regs)
|
struct pt_regs *regs)
|
||||||
|
@ -119,7 +115,7 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
|
||||||
/* Always make any pending restarted system calls return -EINTR */
|
/* Always make any pending restarted system calls return -EINTR */
|
||||||
current_thread_info()->restart_block.fn = do_no_restart_syscall;
|
current_thread_info()->restart_block.fn = do_no_restart_syscall;
|
||||||
|
|
||||||
#define COPY(x) err |= __get_user(regs->x, &sc->x)
|
#define COPY(x) (err |= __get_user(regs->x, &sc->x))
|
||||||
|
|
||||||
COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
|
COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
|
||||||
COPY(dx); COPY(cx); COPY(ip);
|
COPY(dx); COPY(cx); COPY(ip);
|
||||||
|
@ -149,7 +145,7 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
struct _fpstate __user * buf;
|
struct _fpstate __user *buf;
|
||||||
err |= __get_user(buf, &sc->fpstate);
|
err |= __get_user(buf, &sc->fpstate);
|
||||||
|
|
||||||
if (buf) {
|
if (buf) {
|
||||||
|
@ -189,7 +185,7 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
||||||
current->blocked = set;
|
current->blocked = set;
|
||||||
recalc_sigpending();
|
recalc_sigpending();
|
||||||
spin_unlock_irq(¤t->sighand->siglock);
|
spin_unlock_irq(¤t->sighand->siglock);
|
||||||
|
|
||||||
if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ax))
|
if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ax))
|
||||||
goto badframe;
|
goto badframe;
|
||||||
|
|
||||||
|
@ -199,16 +195,17 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
|
||||||
return ax;
|
return ax;
|
||||||
|
|
||||||
badframe:
|
badframe:
|
||||||
signal_fault(regs,frame,"sigreturn");
|
signal_fault(regs, frame, "sigreturn");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up a signal frame.
|
* Set up a signal frame.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, unsigned long mask, struct task_struct *me)
|
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
|
||||||
|
unsigned long mask, struct task_struct *me)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
|
@ -264,35 +261,35 @@ get_stack(struct k_sigaction *ka, struct pt_regs *regs, unsigned long size)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
sigset_t *set, struct pt_regs * regs)
|
sigset_t *set, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct rt_sigframe __user *frame;
|
struct rt_sigframe __user *frame;
|
||||||
struct _fpstate __user *fp = NULL;
|
struct _fpstate __user *fp = NULL;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
struct task_struct *me = current;
|
struct task_struct *me = current;
|
||||||
|
|
||||||
if (used_math()) {
|
if (used_math()) {
|
||||||
fp = get_stack(ka, regs, sizeof(struct _fpstate));
|
fp = get_stack(ka, regs, sizeof(struct _fpstate));
|
||||||
frame = (void __user *)round_down(
|
frame = (void __user *)round_down(
|
||||||
(unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8;
|
(unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8;
|
||||||
|
|
||||||
if (!access_ok(VERIFY_WRITE, fp, sizeof(struct _fpstate)))
|
if (!access_ok(VERIFY_WRITE, fp, sizeof(struct _fpstate)))
|
||||||
goto give_sigsegv;
|
goto give_sigsegv;
|
||||||
|
|
||||||
if (save_i387(fp) < 0)
|
if (save_i387(fp) < 0)
|
||||||
err |= -1;
|
err |= -1;
|
||||||
} else
|
} else
|
||||||
frame = get_stack(ka, regs, sizeof(struct rt_sigframe)) - 8;
|
frame = get_stack(ka, regs, sizeof(struct rt_sigframe)) - 8;
|
||||||
|
|
||||||
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
|
if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
|
||||||
goto give_sigsegv;
|
goto give_sigsegv;
|
||||||
|
|
||||||
if (ka->sa.sa_flags & SA_SIGINFO) {
|
if (ka->sa.sa_flags & SA_SIGINFO) {
|
||||||
err |= copy_siginfo_to_user(&frame->info, info);
|
err |= copy_siginfo_to_user(&frame->info, info);
|
||||||
if (err)
|
if (err)
|
||||||
goto give_sigsegv;
|
goto give_sigsegv;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create the ucontext. */
|
/* Create the ucontext. */
|
||||||
err |= __put_user(0, &frame->uc.uc_flags);
|
err |= __put_user(0, &frame->uc.uc_flags);
|
||||||
err |= __put_user(0, &frame->uc.uc_link);
|
err |= __put_user(0, &frame->uc.uc_link);
|
||||||
|
@ -302,9 +299,9 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
|
err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
|
||||||
err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], me);
|
err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], me);
|
||||||
err |= __put_user(fp, &frame->uc.uc_mcontext.fpstate);
|
err |= __put_user(fp, &frame->uc.uc_mcontext.fpstate);
|
||||||
if (sizeof(*set) == 16) {
|
if (sizeof(*set) == 16) {
|
||||||
__put_user(set->sig[0], &frame->uc.uc_sigmask.sig[0]);
|
__put_user(set->sig[0], &frame->uc.uc_sigmask.sig[0]);
|
||||||
__put_user(set->sig[1], &frame->uc.uc_sigmask.sig[1]);
|
__put_user(set->sig[1], &frame->uc.uc_sigmask.sig[1]);
|
||||||
} else
|
} else
|
||||||
err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
|
err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
|
||||||
|
|
||||||
|
@ -315,7 +312,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
err |= __put_user(ka->sa.sa_restorer, &frame->pretcode);
|
err |= __put_user(ka->sa.sa_restorer, &frame->pretcode);
|
||||||
} else {
|
} else {
|
||||||
/* could use a vstub here */
|
/* could use a vstub here */
|
||||||
goto give_sigsegv;
|
goto give_sigsegv;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
|
@ -323,7 +320,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||||
|
|
||||||
/* Set up registers for signal handler */
|
/* Set up registers for signal handler */
|
||||||
regs->di = sig;
|
regs->di = sig;
|
||||||
/* In case the signal handler was declared without prototypes */
|
/* In case the signal handler was declared without prototypes */
|
||||||
regs->ax = 0;
|
regs->ax = 0;
|
||||||
|
|
||||||
/* This also works for non SA_SIGINFO handlers because they expect the
|
/* This also works for non SA_SIGINFO handlers because they expect the
|
||||||
|
@ -376,7 +373,7 @@ static long current_syscall_ret(struct pt_regs *regs)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* OK, we're invoking a handler
|
* OK, we're invoking a handler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
||||||
|
@ -420,7 +417,7 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
||||||
ret = ia32_setup_rt_frame(sig, ka, info, oldset, regs);
|
ret = ia32_setup_rt_frame(sig, ka, info, oldset, regs);
|
||||||
else
|
else
|
||||||
ret = ia32_setup_frame(sig, ka, oldset, regs);
|
ret = ia32_setup_frame(sig, ka, oldset, regs);
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
ret = setup_rt_frame(sig, ka, info, oldset, regs);
|
ret = setup_rt_frame(sig, ka, info, oldset, regs);
|
||||||
|
|
||||||
|
@ -448,9 +445,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
||||||
ptrace_notify(SIGTRAP);
|
ptrace_notify(SIGTRAP);
|
||||||
|
|
||||||
spin_lock_irq(¤t->sighand->siglock);
|
spin_lock_irq(¤t->sighand->siglock);
|
||||||
sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask);
|
sigorsets(¤t->blocked, ¤t->blocked, &ka->sa.sa_mask);
|
||||||
if (!(ka->sa.sa_flags & SA_NODEFER))
|
if (!(ka->sa.sa_flags & SA_NODEFER))
|
||||||
sigaddset(¤t->blocked,sig);
|
sigaddset(¤t->blocked, sig);
|
||||||
recalc_sigpending();
|
recalc_sigpending();
|
||||||
spin_unlock_irq(¤t->sighand->siglock);
|
spin_unlock_irq(¤t->sighand->siglock);
|
||||||
}
|
}
|
||||||
|
@ -552,14 +549,15 @@ void do_notify_resume(struct pt_regs *regs, void *unused,
|
||||||
}
|
}
|
||||||
|
|
||||||
void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
|
void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
|
||||||
{
|
{
|
||||||
struct task_struct *me = current;
|
struct task_struct *me = current;
|
||||||
if (show_unhandled_signals && printk_ratelimit()) {
|
if (show_unhandled_signals && printk_ratelimit()) {
|
||||||
printk("%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx",
|
printk("%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx",
|
||||||
me->comm,me->pid,where,frame,regs->ip,regs->sp,regs->orig_ax);
|
me->comm, me->pid, where, frame, regs->ip,
|
||||||
|
regs->sp, regs->orig_ax);
|
||||||
print_vma_addr(" in ", regs->ip);
|
print_vma_addr(" in ", regs->ip);
|
||||||
printk("\n");
|
printk("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
force_sig(SIGSEGV, me);
|
force_sig(SIGSEGV, me);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue