mfd: pcf50633: fix unsafe disable_irq()
authorNelson Castillo <arhuaco@freaks-unidos.net>
Tue, 12 May 2009 20:26:47 +0000 (13:26 -0700)
committerSamuel Ortiz <samuel@sortiz.org>
Tue, 19 May 2009 20:22:28 +0000 (22:22 +0200)
Without this change Openmoko Freerunner (GTA02) bootstrap will deadlock.
As pointed out in other patches this issue is in the wild since the merge
of:

: commit 3aa551c9b4c40018f0e261a178e3d25478dc04a9
: Author: Thomas Gleixner <tglx@linutronix.de>
: Date:   Mon Mar 23 18:28:15 2009 +0100
:
:    genirq: add threaded interrupt handler support
:
:    Add support for threaded interrupt handlers

Signed-off-by: Nelson Castillo <arhuaco@freaks-unidos.net>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: <balajirrao@openmoko.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/pcf50633-core.c

index 7793932a513b01bd4b3337d6391e1d01b97dbbe2..11a6248cc1c1dd0af3a57ace1ec228ccdb3ed257 100644 (file)
@@ -443,7 +443,7 @@ static irqreturn_t pcf50633_irq(int irq, void *data)
        dev_dbg(pcf->dev, "pcf50633_irq\n");
 
        get_device(pcf->dev);
-       disable_irq(pcf->irq);
+       disable_irq_nosync(pcf->irq);
        schedule_work(&pcf->irq_work);
 
        return IRQ_HANDLED;