Received: from mail.onstor.com (66.201.51.107) by exch1.onstor.net
 (10.0.0.225) with Microsoft SMTP Server id 8.1.311.2; Fri, 21 Nov 2008
 06:13:21 -0800
Received: from ausesmta2-2.messageone.com ([64.20.241.45]) by mail.onstor.com
 with Microsoft SMTPSVC(6.0.3790.3959);	 Fri, 21 Nov 2008 06:13:21 -0800
Received: from ftp.linux-mips.org (ftp.linux-mips.org [213.58.128.207])	by
 ausesmta2-2.messageone.com (8.13.8/8.13.8) with ESMTP id mALEDJqL027586	for
 <andy.sharp@onstor.com>; Fri, 21 Nov 2008 08:13:20 -0600
Received: from localhost.localdomain ([127.0.0.1]:7386 "EHLO
	ftp.linux-mips.org") by ftp.linux-mips.org with ESMTP	id S23815921AbYKUOMa
 (ORCPT <rfc822;andy.sharp@onstor.com>);	Fri, 21 Nov 2008 14:12:30 +0000
Received: with ECARTIS (v1.0.0; list linux-mips); Fri, 21 Nov 2008 14:12:13
 +0000 (GMT)
Received: from mba.ocn.ne.jp ([122.1.235.107]:11512 "HELO smtp.mba.ocn.ne.jp")
	by ftp.linux-mips.org with SMTP id S23815914AbYKUOMG (ORCPT
	<rfc822;linux-mips@linux-mips.org>); Fri, 21 Nov 2008 14:12:06 +0000
Received: from localhost (p6091-ipad313funabasi.chiba.ocn.ne.jp
 [123.217.232.91])	by smtp.mba.ocn.ne.jp (Postfix) with ESMTP	id 376FFAB51;
 Fri, 21 Nov 2008 23:12:00 +0900 (JST)
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
To: "alessandro.zummo@towertech.it" <alessandro.zummo@towertech.it>
CC: "rtc-linux@googlegroups.com" <rtc-linux@googlegroups.com>,
	"linux-mips@linux-mips.org" <linux-mips@linux-mips.org>,
	"ralf@linux-mips.org" <ralf@linux-mips.org>
Sender: "linux-mips-bounce@linux-mips.org" <linux-mips-bounce@linux-mips.org>
Date: Fri, 21 Nov 2008 06:12:06 -0800
Subject: Re: [rtc-linux] [PATCH 3/4] rtc: Add rtc-tx4939 driver
Thread-Topic: [rtc-linux] [PATCH 3/4] rtc: Add rtc-tx4939 driver
Thread-Index: AclL409OPRTJHOqwSMSNmzJqQM0ttw==
Message-ID: <20081121.231206.96686926.anemo@mba.ocn.ne.jp>
References: <1227194815-16200-1-git-send-email-anemo@mba.ocn.ne.jp>
	<20081120164533.73ba1f7f@i1501.lan.towertech.it>
In-Reply-To: <20081120164533.73ba1f7f@i1501.lan.towertech.it>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 0b
X-MS-Exchange-Organization-AuthSource: exch1.onstor.net
X-MS-Has-Attach:
X-Auto-Response-Suppress: All
X-MS-TNEF-Correlator:
x-originalarrivaltime: 21 Nov 2008 14:13:21.0265 (UTC)
 FILETIME=[4F0C8610:01C94BE3]
errors-to: linux-mips-bounce@linux-mips.org
x-ems-proccessed: 2K3Xl1OQTInXD6xxuA8z3Q==
x-ems-stamp: rQQVUlrUtCO/mFuTw74Ceg==
x-messageone-virus-version: vendor=fsecure
 engine=4.65.7400:2.4.4,1.2.40,4.0.164
 definitions=2008-11-21_05:2008-11-19,2008-11-21,2008-11-21 signatures=0
x-messageone-virus-scanned: Clean
x-messageone-envelope-sender: linux-mips-bounce@linux-mips.org
x-messageone-spam-details: rule=m773emszm_notspam policy=m773emszm score=0
 spamscore=0 ipscore=0 phishscore=0 bulkscore=0 adultscore=0 classifier=spam
 adjust=0 reason=mlx engine=3.1.0-0810130000 definitions=main-0811210043
x-messageone-spam-score: 0
x-messageone-spam-bar:
x-list: linux-mips
x-archive-position: 21358
x-ecartis-version: Ecartis v1.0.0
x-original-sender: anemo@mba.ocn.ne.jp
x-fingerprint: 6ACA 1623 39BD 9A94 9B1A  B746 CA77 FE94 2874 D52F
x-pgp-public-key: http://wwwkeys.pgp.net/pks/lookup?op=get&search=0x2874D52F
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

On Thu, 20 Nov 2008 16:45:33 +0100, Alessandro Zummo <alessandro.zummo@towe=
rtech.it> wrote:
>  AIE_ON an OFF are mapped to alarm_irq_enable, please see the latest patc=
hes
>  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, unsig=
ned int enabled)
=20
 #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
 	if (enabled =3D=3D 0 && rtc->uie_irq_active) {
-		err =3D 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
=20
@@ -353,8 +352,10 @@ int rtc_update_irq_enable(struct rtc_device *rtc, unsi=
gned int enabled)
 	 * -EINVAL to signal that it has been configured without
 	 * interrupts or that are not available at the moment.
 	 */
-	if (err =3D=3D -EINVAL)
-		err =3D rtc_dev_update_irq_enable_emul(rtc, enabled);
+	if (err =3D=3D -EINVAL) {
+		mutex_unlock(&rtc->ops_lock);
+		return rtc_dev_update_irq_enable_emul(rtc, enabled);
+	}
 #endif
=20
 	mutex_unlock(&rtc->ops_lock);

