summaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-ds1553.c
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2006-11-25 11:09:28 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2006-11-25 13:28:33 -0800
commitd728b1e69fd5829ec2ab2434381e5a268d4f684a (patch)
treee11b3dea35247074628f04f5441e4a458bdbd86b /drivers/rtc/rtc-ds1553.c
parent2601a46474db2dcbc08ee690e56f08a10abe65cb (diff)
downloadlinux-stable-d728b1e69fd5829ec2ab2434381e5a268d4f684a.tar.gz
linux-stable-d728b1e69fd5829ec2ab2434381e5a268d4f684a.tar.bz2
linux-stable-d728b1e69fd5829ec2ab2434381e5a268d4f684a.zip
[PATCH] rtc class locking bugfixes
I got a lockdep warning when running "rtctest" so I though it'd be good to see what was up. - The warning was for rtc->irq_task_lock, gotten from rtc_update_irq() by irq handlerss ... but in a handful of other cases, grabbed without blocking IRQs. - Some callers to rtc_update_irq() were not ensuring IRQs were blocked, yet the routine expects that; make sure all callers block IRQs. It would appear that RTC API tests haven't been part of anyone's kernel regression test suite recently, at least not with lockdep running. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/rtc/rtc-ds1553.c')
-rw-r--r--drivers/rtc/rtc-ds1553.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c
index 78552e6e76aa..001eb1123a65 100644
--- a/drivers/rtc/rtc-ds1553.c
+++ b/drivers/rtc/rtc-ds1553.c
@@ -340,7 +340,8 @@ static int __init ds1553_rtc_probe(struct platform_device *pdev)
if (pdata->irq >= 0) {
writeb(0, ioaddr + RTC_INTERRUPTS);
- if (request_irq(pdata->irq, ds1553_rtc_interrupt, IRQF_SHARED,
+ if (request_irq(pdata->irq, ds1553_rtc_interrupt,
+ IRQF_DISABLED | IRQF_SHARED,
pdev->name, pdev) < 0) {
dev_warn(&pdev->dev, "interrupt not available.\n");
pdata->irq = -1;