diff options
| author | Kevin Hilman <khilman@ti.com> | 2012-07-11 14:02:44 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-11 16:04:48 -0700 | 
| commit | 6b91bf1a3f52f5fdf40f5aaeb09a06b4d49556cc (patch) | |
| tree | 764e16ae7d9d00fcc1f8d673587a01be59089689 | |
| parent | 5d8ecbbc284f7e7568969574a6601b05f1ed1d90 (diff) | |
| download | olio-linux-3.10-6b91bf1a3f52f5fdf40f5aaeb09a06b4d49556cc.tar.xz olio-linux-3.10-6b91bf1a3f52f5fdf40f5aaeb09a06b4d49556cc.zip  | |
drivers/rtc/rtc-twl.c: fix threaded IRQ to use IRQF_ONESHOT
Requesting a threaded interrupt without a primary handler and without
IRQF_ONESHOT is dangerous, and after commit 1c6c6952 ("genirq: Reject
bogus threaded irq requests"), these requests are rejected.  This causes
->probe() to fail, and the RTC driver not to be availble.
To fix, add IRQF_ONESHOT to the IRQ flags.
Tested on OMAP3730/OveroSTORM and OMAP4430/Panda board using rtcwake to
wake from system suspend multiple times.
Signed-off-by: Kevin Hilman <khilman@ti.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | drivers/rtc/rtc-twl.c | 2 | 
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c index 258abeabf62..c5d06fe83bb 100644 --- a/drivers/rtc/rtc-twl.c +++ b/drivers/rtc/rtc-twl.c @@ -510,7 +510,7 @@ static int __devinit twl_rtc_probe(struct platform_device *pdev)  	}  	ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt, -				   IRQF_TRIGGER_RISING, +				   IRQF_TRIGGER_RISING | IRQF_ONESHOT,  				   dev_name(&rtc->dev), rtc);  	if (ret < 0) {  		dev_err(&pdev->dev, "IRQ is not free.\n");  |