linux/drivers
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
..
accessibility
acpi ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
amba
ata
atm
auxdisplay
base cma: increase CMA_ALIGNMENT upper limit to 12 2014-06-04 16:54:08 -07:00
bcma
block Merge branch 'akpm' (patchbomb from Andrew) into next 2014-06-04 16:55:13 -07:00
bluetooth TTY/Serial driver patches for 3.16-rc1 2014-06-03 09:01:02 -07:00
bus ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
cdrom
char ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
clk DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
clocksource Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:57:20 -07:00
connector Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00
cpufreq ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
cpuidle ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
crypto crypto/nx/nx-842: dev_set_drvdata can no longer fail 2014-05-28 13:39:51 -07:00
dca
devfreq PM / devfreq: remove checks for CONFIG_EXYNOS_ASV 2014-05-24 22:33:51 +09:00
dio
dma ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
edac PCI changes for the v3.16 merge window: 2014-06-02 12:15:19 -07:00
eisa
extcon
firewire sound updates for 3.16-rc1 2014-06-04 09:08:25 -07:00
firmware Merge branch 'arm64-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-05 13:15:32 -07:00
fmc
gpio This is the bulk of GPIO changes for the v3.16 series: 2014-06-02 08:46:03 -07:00
gpu drm/exynos: call find_vma with the mmap_sem held 2014-06-04 16:54:00 -07:00
hid Merge branches 'for-3.16/i2c-hid', 'for-3.16/rmi4', 'for-3.16/sony' and 'for-3.16/thingm' into for-linus 2014-06-04 13:09:43 +02:00
hsi
hv hv: use correct order when freeing monitor_pages 2014-05-28 13:45:15 -07:00
hwmon New driver for NCT6683D 2014-06-03 11:09:43 -07:00
hwspinlock
i2c
ide
idle
iio Staging driver patches for 3.16-rc1 2014-06-03 08:34:00 -07:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-23 15:29:43 -07:00
input ARM: SoC updates for 3.16 (part 1) 2014-06-02 16:15:12 -07:00
iommu Merge branch 'akpm' (patchbomb from Andrew) into next 2014-06-04 16:55:13 -07:00
ipack
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
isdn
leds Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid into next 2014-06-04 08:52:36 -07:00
lguest
macintosh
mailbox
mcb mcb: Add support for shared PCI IRQs 2014-05-27 17:38:11 -07:00
md Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media into next 2014-06-04 14:24:30 -07:00
memory
memstick
message
mfd sound updates for 3.16-rc1 2014-06-04 09:08:25 -07:00
misc Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 15:48:23 -07:00
mmc Updates for mmci driver: 2014-06-02 09:22:24 -07:00
mtd Merge branch 'for-3.16/core' of git://git.kernel.dk/linux-block into next 2014-06-02 09:29:34 -07:00
net Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
nfc
ntb
nubus kernel/printk: use symbolic defines for console loglevels 2014-06-04 16:54:17 -07:00
of Microblaze patches for 3.16-rc1 2014-06-05 16:15:33 -07:00
oprofile
parisc
parport parport: Add support for the WCH353 1S/1P multi-IO card 2014-05-28 12:30:48 -07:00
pci Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
pcmcia pcmcia: Use pci_is_bridge() to simplify code 2014-05-27 14:58:24 -06:00
phy
pinctrl This is the bulk of pin control changes for the v3.16 2014-06-03 11:20:32 -07:00
platform ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
pnp Merge branches 'pnp', 'powercap', 'pm-runtime' and 'pm-opp' 2014-06-03 23:13:00 +02:00
power ACPI and power management updates for 3.16-rc1 2014-06-04 08:57:16 -07:00
powercap
pps
ps3
ptp
pwm
rapidio
regulator regulator: Updates for v3.16 2014-06-03 11:44:48 -07:00
remoteproc
reset ARM: SoC driver changes 2014-06-02 16:35:49 -07:00
rpmsg
rtc rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq 2014-06-06 16:08:08 -07:00
s390 At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
sbus
scsi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial into next 2014-06-04 08:50:34 -07:00
sfi
sh Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
sn
soc soc: qcom: fix of_device_id table 2014-05-26 21:27:09 +02:00
spi Merge remote-tracking branch 'spi/topic/workqueue' into spi-next 2014-06-02 17:08:43 +01:00
spmi
ssb
staging Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media into next 2014-06-04 14:24:30 -07:00
target Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
tc
thermal
tty Merge branch 'akpm' (patchbomb from Andrew) into next 2014-06-04 16:55:13 -07:00
uio uio: fix vma io range check in mmap 2014-05-27 14:11:06 -07:00
usb Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
uwb uwb: fix variable set but not used warnings 2014-05-27 15:18:48 -07:00
vfio driver core: dev_set_drvdata can no longer fail 2014-05-27 13:40:51 -07:00
vhost
video fbdev changes for 3.16 (omap) 2014-06-04 09:07:08 -07:00
virt
virtio
vlynq
vme
w1 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
watchdog
xen Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-04 15:59:13 -07:00
zorro
Kconfig
Makefile Char / misc driver patches for 3.16-rc1 2014-06-03 08:06:56 -07:00