Commit:     8b7f07155f8ee1536da2f9590f1aa9383afefb6b
Parent:     436bbd431d41e0fd3bfedb0312ab764b291ddf82
Author:     Andrew Morton <[EMAIL PROTECTED]>
AuthorDate: Wed Aug 22 14:01:20 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed Aug 22 19:52:44 2007 -0700

    free_irq(): fix DEBUG_SHIRQ handling
    If we're going to run the handler from free_irq() then we must do it with
    local irq's disabled.  Otherwise lockdep complains that the handler is 
    irq-safe spinlocks in a non-irq-safe fashion.
    Cc: Ingo Molnar <[EMAIL PROTECTED]>
    Cc: David Woodhouse <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 kernel/irq/manage.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 203a518..853aefb 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -462,7 +462,9 @@ void free_irq(unsigned int irq, void *dev_id)
                 * We do this after actually deregistering it, to make sure that
                 * a 'real' IRQ doesn't run in parallel with our fake
+               local_irq_save(flags);
                handler(irq, dev_id);
+               local_irq_restore(flags);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to