From 633732568edf019132b611b7bd6ceec7e2b51fca Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 26 Jul 2011 16:08:18 -0700 Subject: [PATCH] --- yaml --- r: 260393 b: refs/heads/master c: 2c4f57d12df7696d65b0247bfd57fd082a7719e6 h: refs/heads/master i: 260391: b48386d43c2a22ec3942cff1cfc3651b60a9bb28 v: v3 --- [refs] | 2 +- trunk/drivers/rtc/interface.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 998ee397e7c5..70e3790f0726 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b45d59fb92f60c9c3cda01355d42b907b863e47a +refs/heads/master: 2c4f57d12df7696d65b0247bfd57fd082a7719e6 diff --git a/trunk/drivers/rtc/interface.c b/trunk/drivers/rtc/interface.c index df68618f6dbb..b6bf57f25cc9 100644 --- a/trunk/drivers/rtc/interface.c +++ b/trunk/drivers/rtc/interface.c @@ -656,6 +656,8 @@ int rtc_irq_set_state(struct rtc_device *rtc, struct rtc_task *task, int enabled err = -EBUSY; if (rtc->irq_task != task) err = -EACCES; + if (err) + goto out; if (enabled) { ktime_t period = ktime_set(0, NSEC_PER_SEC/rtc->irq_freq); @@ -664,6 +666,7 @@ int rtc_irq_set_state(struct rtc_device *rtc, struct rtc_task *task, int enabled hrtimer_cancel(&rtc->pie_timer); } rtc->pie_enabled = enabled; +out: spin_unlock_irqrestore(&rtc->irq_task_lock, flags); return err;