mfd: pcf50633: fix unsafe disable_irq()
authorNelson Castillo <[email protected]>
Tue, 12 May 2009 20:26:47 +0000 (13:26 -0700)
committerSamuel Ortiz <[email protected]>
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 <[email protected]>
: 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 <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>
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;