From: Uwe Kleine-König Date: Mon, 14 Feb 2011 10:33:17 +0000 (+0100) Subject: RTC: Release mutex in error path of rtc_alarm_irq_enable X-Git-Tag: v2.6.38-rc6~19^2~2 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=516373b8b60fa4152334b6b6f2ece0f178c540ce;p=linux.git RTC: Release mutex in error path of rtc_alarm_irq_enable On hardware that doesn't support alarm interrupts, rtc_alarm_irq_enable could return without releasing the ops_lock mutex. This was introduced in aa0be0f (RTC: Propagate error handling via rtc_timer_enqueue properly) This patch corrects the issue by only returning once the mutex is released. [john.stultz: Reworded the commit log] Signed-off-by: Uwe Kleine-König Signed-off-by: John Stultz --- diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index a0c01967244d..413ae0537915 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -209,9 +209,8 @@ int rtc_alarm_irq_enable(struct rtc_device *rtc, unsigned int enabled) } if (err) - return err; - - if (!rtc->ops) + /* nothing */; + else if (!rtc->ops) err = -ENODEV; else if (!rtc->ops->alarm_irq_enable) err = -EINVAL;