From d9dddfa1c6504a6f5068af4a4a56b305e7aa1cb8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 14 Jun 2010 18:20:05 +0200 Subject: [PATCH] powerpc: Enable interrupts in do_signal() commit c7dec167a21e00e5ebd1c5c525719814b95c7bf5 in tip. do_signal() is missing an interrupt enabled which causes might_sleep warning or scheduling while atomic bugs. Reported-by: Will Schmidt Signed-off-by: Thomas Gleixner Signed-off-by: Paul Gortmaker --- arch/powerpc/kernel/signal.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c index a0afb55..de4960c 100644 --- a/arch/powerpc/kernel/signal.c +++ b/arch/powerpc/kernel/signal.c @@ -120,6 +120,14 @@ static int do_signal_pending(sigset_t *oldset, struct pt_regs *regs) int ret; int is32 = is_32bit_task(); +#ifdef CONFIG_PREEMPT_RT + /* + * Fully-preemptible kernel does not need interrupts disabled: + */ + local_irq_enable(); + preempt_check_resched(); +#endif + if (current_thread_info()->local_flags & _TLF_RESTORE_SIGMASK) oldset = ¤t->saved_sigmask; else if (!oldset) -- 1.7.0.4