diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 12006308c7eb..afa4f781f924 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -55,7 +55,7 @@ static int sig_ignored(struct task_struct *t, int sig) | |||
55 | * signal handler may change by the time it is | 55 | * signal handler may change by the time it is |
56 | * unblocked. | 56 | * unblocked. |
57 | */ | 57 | */ |
58 | if (sigismember(&t->blocked, sig)) | 58 | if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) |
59 | return 0; | 59 | return 0; |
60 | 60 | ||
61 | /* Is it explicitly or implicitly ignored? */ | 61 | /* Is it explicitly or implicitly ignored? */ |
@@ -124,7 +124,7 @@ void recalc_sigpending_and_wake(struct task_struct *t) | |||
124 | 124 | ||
125 | void recalc_sigpending(void) | 125 | void recalc_sigpending(void) |
126 | { | 126 | { |
127 | if (!recalc_sigpending_tsk(current)) | 127 | if (!recalc_sigpending_tsk(current) && !freezing(current)) |
128 | clear_thread_flag(TIF_SIGPENDING); | 128 | clear_thread_flag(TIF_SIGPENDING); |
129 | 129 | ||
130 | } | 130 | } |
@@ -732,7 +732,7 @@ static void print_fatal_signal(struct pt_regs *regs, int signr) | |||
732 | printk("%s/%d: potentially unexpected fatal signal %d.\n", | 732 | printk("%s/%d: potentially unexpected fatal signal %d.\n", |
733 | current->comm, task_pid_nr(current), signr); | 733 | current->comm, task_pid_nr(current), signr); |
734 | 734 | ||
735 | #ifdef __i386__ | 735 | #if defined(__i386__) && !defined(__arch_um__) |
736 | printk("code at %08lx: ", regs->eip); | 736 | printk("code at %08lx: ", regs->eip); |
737 | { | 737 | { |
738 | int i; | 738 | int i; |