Skip to content

Commit

Permalink
new helper: signal_setup_done()
Browse files Browse the repository at this point in the history
usual "call force_sigsegv or signal_delivered" logics.  Takes
ksignal instead of separate siginfo/k_sigaction.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Feb 3, 2013
1 parent ca86b5d commit 2ce5da1
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/linux/signal.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ struct ksignal {
};

extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping);
extern void exit_signals(struct task_struct *tsk);

Expand Down
9 changes: 9 additions & 0 deletions kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -2396,6 +2396,15 @@ void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka,
tracehook_signal_handler(sig, info, ka, regs, stepping);
}

void signal_setup_done(int failed, struct ksignal *ksig, int stepping)
{
if (failed)
force_sigsegv(ksig->sig, current);
else
signal_delivered(ksig->sig, &ksig->info, &ksig->ka,
signal_pt_regs(), stepping);
}

/*
* It could be that complete_signal() picked us to notify about the
* group-wide signal. Other threads should be notified now to take
Expand Down

0 comments on commit 2ce5da1

Please sign in to comment.