Re: [rtc-linux] [PATCH 3/4] rtc: Add rtc-tx4939 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 20 Nov 2008 16:45:33 +0100, Alessandro Zummo <alessandro.zummo@xxxxxxxxxxxx> wrote:
>  AIE_ON an OFF are mapped to alarm_irq_enable, please see the latest patches
>  on the rtc mailing list or here http://patchwork.ozlabs.org/patch/9676/

This patch cause deadlock on RTC UIE emulation (again).

Please fold this fix into the rtc-add-alarm-update-irq-interfaces patch.

diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
index 6195f7a..6c39915 100644
--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -333,9 +333,8 @@ int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled)
 
 #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
 	if (enabled == 0 && rtc->uie_irq_active) {
-		err = rtc_dev_update_irq_enable_emul(rtc, enabled);
 		mutex_unlock(&rtc->ops_lock);
-		return err;
+		return rtc_dev_update_irq_enable_emul(rtc, enabled);
 	}
 #endif
 
@@ -353,8 +352,10 @@ int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled)
 	 * -EINVAL to signal that it has been configured without
 	 * interrupts or that are not available at the moment.
 	 */
-	if (err == -EINVAL)
-		err = rtc_dev_update_irq_enable_emul(rtc, enabled);
+	if (err == -EINVAL) {
+		mutex_unlock(&rtc->ops_lock);
+		return rtc_dev_update_irq_enable_emul(rtc, enabled);
+	}
 #endif
 
 	mutex_unlock(&rtc->ops_lock);


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux