Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: pcf50633: fix unsafe disable_irq()

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>

authored by

Nelson Castillo and committed by
Samuel Ortiz
f43ab901 b126d113

+1 -1
+1 -1
drivers/mfd/pcf50633-core.c
··· 443 443 dev_dbg(pcf->dev, "pcf50633_irq\n"); 444 444 445 445 get_device(pcf->dev); 446 - disable_irq(pcf->irq); 446 + disable_irq_nosync(pcf->irq); 447 447 schedule_work(&pcf->irq_work); 448 448 449 449 return IRQ_HANDLED;