get_signal_to_deliver() calls try_to_freeze() which might sleep. Cc: Mark Salter <msalter@xxxxxxxxxx> Cc: Aurelien Jacquiot <a-jacquiot@xxxxxx> Cc: linux-c6x-dev@xxxxxxxxxxxxx Signed-off-by: Richard Weinberger <richard@xxxxxx> --- arch/c6x/kernel/signal.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/c6x/kernel/signal.c b/arch/c6x/kernel/signal.c index cf37478..80e91bf 100644 --- a/arch/c6x/kernel/signal.c +++ b/arch/c6x/kernel/signal.c @@ -15,6 +15,7 @@ #include <linux/uaccess.h> #include <linux/syscalls.h> #include <linux/tracehook.h> +#include <linux/irqflags.h> #include <asm/ucontext.h> #include <asm/cacheflush.h> @@ -356,6 +357,8 @@ static void do_signal(struct pt_regs *regs, int syscall) asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags, int syscall) { + local_irq_enable(); + /* deal with pending signal delivery */ if (thread_info_flags & ((1 << TIF_SIGPENDING) | (1 << TIF_RESTORE_SIGMASK))) -- 1.7.7.3 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html