Boris BREZILLON
2fe121e1f5
rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq
...
The rtc user must wait at least 1 sec between each time/calandar update
(see atmel's datasheet chapter "Updating Time/Calendar").
Use the 1Hz interrupt to update the at91_rtc_upd_rdy flag and wait for
the at91_rtc_wait_upd_rdy event if the rtc is not ready.
This patch fixes a deadlock in an uninterruptible wait when the RTC is
updated more than once every second. AFAICT the bug is here from the
beginning, but I think we should at least backport this fix to 3.10 and
the following longterm and stable releases.
Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Reported-by: Bryan Evenson <bevenson@melinkcorp.com>
Tested-by: Bryan Evenson <bevenson@melinkcorp.com>
Cc: Andrew Victor <linux@maxim.org.za>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-06-06 16:08:08 -07:00
..
2014-01-23 16:37:00 -08:00
2012-10-06 03:05:04 +09:00
2014-06-06 16:08:06 -07:00
2014-06-06 16:08:08 -07:00
2014-06-06 16:08:08 -07:00
2013-11-13 12:09:28 +09:00
2014-06-06 16:08:07 -07:00
2013-07-03 16:07:54 -07:00
2013-07-03 16:07:59 -07:00
2014-04-03 16:21:22 -07:00
2014-04-03 16:21:17 -07:00
2014-06-06 16:08:08 -07:00
2013-04-05 09:36:53 -07:00
2013-12-20 11:41:32 +01:00
2013-07-03 16:07:54 -07:00
2014-06-06 16:08:08 -07:00
2013-07-03 16:07:55 -07:00
2013-07-03 16:07:54 -07:00
2014-06-06 16:08:07 -07:00
2014-04-03 16:21:18 -07:00
2014-06-06 16:08:07 -07:00
2014-04-03 16:21:24 -07:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:18 -07:00
2013-02-21 17:22:29 -08:00
2013-07-03 16:07:53 -07:00
2013-07-03 16:08:00 -07:00
2013-07-03 16:07:56 -07:00
2013-07-03 16:07:59 -07:00
2014-04-03 16:21:16 -07:00
2014-04-03 16:21:20 -07:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:23 -07:00
2013-07-03 16:07:46 -07:00
2014-04-03 16:21:17 -07:00
2014-04-03 16:21:24 -07:00
2014-04-03 16:21:24 -07:00
2014-04-03 16:21:16 -07:00
2014-06-06 16:08:07 -07:00
2013-11-13 12:09:29 +09:00
2014-04-03 16:21:22 -07:00
2013-07-03 16:07:56 -07:00
2014-06-06 16:08:07 -07:00
2013-07-03 16:07:56 -07:00
2013-11-13 12:09:29 +09:00
2013-07-03 16:07:56 -07:00
2013-07-03 16:07:57 -07:00
2013-11-15 09:32:21 +09:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:16 -07:00
2013-11-13 12:09:27 +09:00
2013-07-16 16:06:00 +09:30
2014-06-06 16:08:07 -07:00
2014-04-03 16:21:19 -07:00
2011-08-26 17:26:35 -07:00
2013-07-03 16:07:53 -07:00
2014-04-03 16:21:18 -07:00
2013-07-03 16:07:53 -07:00
2014-06-06 16:08:07 -07:00
2013-07-03 16:07:56 -07:00
2013-07-03 16:07:57 -07:00
2013-07-16 16:06:00 +09:30
2013-11-13 12:09:29 +09:00
2013-11-13 12:09:29 +09:00
2013-11-13 12:09:27 +09:00
2013-07-03 16:07:57 -07:00
2014-01-23 16:37:00 -08:00
2013-07-03 16:07:53 -07:00
2013-07-03 16:07:57 -07:00
2013-07-10 11:10:27 -07:00
2013-09-11 15:58:56 -07:00
2014-04-03 16:21:23 -07:00
2014-06-06 16:08:08 -07:00
2014-04-03 16:21:17 -07:00
2013-10-09 20:04:04 -05:00
2013-11-13 12:09:27 +09:00
2013-07-03 16:07:53 -07:00
2014-06-06 16:08:08 -07:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:17 -07:00
2014-06-06 16:08:08 -07:00
2014-06-06 16:08:08 -07:00
2013-07-03 16:07:51 -07:00
2013-11-13 12:09:29 +09:00
2014-01-23 16:37:00 -08:00
2014-05-06 13:04:58 -07:00
2013-07-16 16:06:00 +09:30
2013-07-16 16:06:00 +09:30
2013-04-29 18:28:38 -07:00
2013-11-13 12:09:31 +09:00
2013-11-13 12:09:31 +09:00
2014-04-03 16:21:23 -07:00
2013-04-09 14:13:32 -04:00
2013-07-03 16:07:58 -07:00
2013-11-13 12:09:31 +09:00
2013-12-20 11:41:33 +01:00
2013-04-29 18:28:34 -07:00
2013-07-03 16:07:55 -07:00
2013-07-03 16:07:52 -07:00
2013-07-03 16:07:58 -07:00
2013-11-13 12:09:29 +09:00
2013-05-07 18:38:26 -07:00
2014-04-03 16:21:24 -07:00
2013-07-03 16:07:58 -07:00
2014-04-03 16:21:18 -07:00
2014-01-23 16:37:00 -08:00
2014-04-03 16:21:24 -07:00
2013-04-19 13:51:25 +02:00
2014-01-23 16:37:00 -08:00
2013-04-29 18:28:38 -07:00
2013-07-03 16:07:51 -07:00
2013-11-13 12:09:30 +09:00
2014-04-03 16:21:19 -07:00
2013-11-13 12:09:30 +09:00
2014-04-03 16:21:18 -07:00
2013-07-03 16:07:58 -07:00
2014-04-03 16:21:24 -07:00
2013-11-13 12:09:30 +09:00
2013-07-03 16:07:58 -07:00
2014-04-03 16:21:21 -07:00
2013-07-29 13:10:58 -07:00
2013-05-18 11:57:07 +02:00
2014-04-03 16:21:16 -07:00
2013-07-03 16:07:53 -07:00
2013-06-12 16:29:45 -07:00
2013-11-13 12:09:31 +09:00
2013-07-03 16:07:58 -07:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:24 -07:00
2013-11-13 12:09:30 +09:00
2014-01-23 16:36:59 -08:00
2014-04-03 16:21:19 -07:00
2013-07-03 16:07:59 -07:00
2013-04-29 18:28:32 -07:00
2014-04-03 16:21:16 -07:00
2014-06-06 16:08:06 -07:00
2013-01-15 18:16:06 -08:00