Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 139681
b: refs/heads/master
c: f008faf
h: refs/heads/master
i:
  139679: f03449f
v: v3
  • Loading branch information
Oleg Nesterov authored and Linus Torvalds committed Apr 3, 2009
1 parent 3f29af6 commit eaf7b86
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 43918f2bf4806675943416d539d9d5e4d585ebff
refs/heads/master: f008faff0e2777c8b3fe853891b774ca465938d8
16 changes: 13 additions & 3 deletions trunk/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,21 @@ static int sig_handler_ignored(void __user *handler, int sig)
(handler == SIG_DFL && sig_kernel_ignore(sig));
}

static int sig_ignored(struct task_struct *t, int sig)
static int sig_task_ignored(struct task_struct *t, int sig)
{
void __user *handler;

handler = sig_handler(t, sig);

if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) &&
handler == SIG_DFL)
return 1;

return sig_handler_ignored(handler, sig);
}

static int sig_ignored(struct task_struct *t, int sig)
{
/*
* Blocked signals are never ignored, since the
* signal handler may change by the time it is
Expand All @@ -67,8 +78,7 @@ static int sig_ignored(struct task_struct *t, int sig)
if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig))
return 0;

handler = sig_handler(t, sig);
if (!sig_handler_ignored(handler, sig))
if (!sig_task_ignored(t, sig))
return 0;

/*
Expand Down

0 comments on commit eaf7b86

Please sign in to comment.