[PATCH] arm: Call do_notify_resume() with interrupts enabled

Thomas Gleixner tglx at linutronix.de
Sat Jul 23 13:15:17 EDT 2011


When a signal is delivered from do_notify_resume() __put_user() is
currently called with interrupts disabled.

When the access faults then the fault code trips over the interrupts
disabled check in might_sleep(). No biscuit!

Enable interrupts before calling do_notify_resume().

Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
---
 arch/arm/kernel/entry-common.S |    1 +
 1 file changed, 1 insertion(+)

Index: linux-2.6/arch/arm/kernel/entry-common.S
===================================================================
--- linux-2.6.orig/arch/arm/kernel/entry-common.S
+++ linux-2.6/arch/arm/kernel/entry-common.S
@@ -49,6 +49,7 @@ work_pending:
 	bne	work_resched
 	tst	r1, #_TIF_SIGPENDING|_TIF_NOTIFY_RESUME
 	beq	no_work_pending
+	enable_irq
 	mov	r0, sp				@ 'regs'
 	mov	r2, why				@ 'syscall'
 	tst	r1, #_TIF_SIGPENDING		@ delivering a signal?



More information about the linux-arm-kernel mailing list