linux/drivers/rtc
Vladimir Zapolskiy f501ed524b rtc: s3c: balance state changes of wakeup flag
This change resolves a problem about unbalanced calls of
enable_irq_wakeup() and disable_irq_wakeup() for alarm interrupt.

Bug reproduction:

root@eb600:~# echo 0 > /sys/class/rtc/rtc0/wakealarm

WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0xe4()
 Unbalanced IRQ 46 wake disable
Modules linked in:
[<c0025708>] (unwind_backtrace+0x0/0xd8) from [<c003358c>] (warn_slowpath_common+0x44/0x5c)
[<c003358c>] (warn_slowpath_common+0x44/0x5c) from [<c00335dc>] (warn_slowpath_fmt+0x24/0x30)
[<c00335dc>] (warn_slowpath_fmt+0x24/0x30) from [<c0058c20>] (set_irq_wake+0x7c/0xe4)
[<c0058c20>] (set_irq_wake+0x7c/0xe4) from [<c01b5e80>] (s3c_rtc_setalarm+0xa8/0xb8)
[<c01b5e80>] (s3c_rtc_setalarm+0xa8/0xb8) from [<c01b47a0>] (rtc_set_alarm+0x60/0x74)
[<c01b47a0>] (rtc_set_alarm+0x60/0x74) from [<c01b5a98>] (rtc_sysfs_set_wakealarm+0xc8/0xd8)
[<c01b5a98>] (rtc_sysfs_set_wakealarm+0xc8/0xd8) from [<c01891ec>] (dev_attr_store+0x20/0x24)
[<c01891ec>] (dev_attr_store+0x20/0x24) from [<c00be934>] (sysfs_write_file+0x104/0x13c)
[<c00be934>] (sysfs_write_file+0x104/0x13c) from [<c0080e7c>] (vfs_write+0xb0/0x158)
[<c0080e7c>] (vfs_write+0xb0/0x158) from [<c0080fcc>] (sys_write+0x3c/0x68)
[<c0080fcc>] (sys_write+0x3c/0x68) from [<c0020ec0>] (ret_fast_syscall+0x0/0x28)

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Ben Dooks <ben@fluff.org.uk>
Cc: Atul Dahiya <atul.dahiya@samsung.com>
Cc: Taekgyun Ko <taeggyun.ko@samsung.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-09-22 17:22:40 -07:00
..
class.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hctosys.c rtc/hctosys: only claim the RTC provided the system time if it did 2010-03-12 15:52:28 -08:00
interface.c
Kconfig Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-08-11 09:13:19 -07:00
Makefile rtc: add support for DS3232 RTC 2010-08-11 08:59:08 -07:00
rtc-ab3100.c drivers/rtc/rtc-ab3100.c: add missing platform_set_drvdata() in ab3100_rtc_probe() 2010-09-22 17:22:39 -07:00
rtc-ab8500.c rtc: AB8500 RTC driver 2010-05-27 09:12:41 -07:00
rtc-at32ap700x.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-at91rm9200.c
rtc-at91sam9.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-au1xxx.c
rtc-bfin.c rtc-bfin: fix state restoration when resuming 2010-09-09 18:57:22 -07:00
rtc-bq32k.c
rtc-bq4802.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-cmos.c drivers/rtc: remove unneeded ifdef CONFIG_PM 2010-08-11 08:59:08 -07:00
rtc-coh901331.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-core.h
rtc-davinci.c davinci: update gfp/slab.h includes 2010-06-28 10:19:19 +10:00
rtc-dev.c
rtc-dm355evm.c
rtc-ds1216.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-ds1286.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-ds1302.c rtc-ds1302: add some abstraction for new platform support 2010-05-25 08:07:08 -07:00
rtc-ds1305.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-ds1307.c rtc: fix ds1388 time corruption 2010-06-29 15:29:31 -07:00
rtc-ds1374.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
rtc-ds1390.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-ds1511.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-ds1553.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-ds1672.c
rtc-ds1742.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-ds3232.c rtc: add support for DS3232 RTC 2010-08-11 08:59:08 -07:00
rtc-ds3234.c
rtc-efi.c
rtc-ep93xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-fm3130.c rtc: fixes and new functionality for fm3130 2010-08-11 08:59:07 -07:00
rtc-generic.c
rtc-imxdi.c rtc: driver for the DryIce block found in i.MX25 chips 2010-08-11 08:59:07 -07:00
rtc-isl1208.c rtc-isl1208: use sysfs_{create/remove}_group 2010-05-25 08:07:08 -07:00
rtc-isl12022.c rtc-isl12022: properly handle military hour format 2010-08-11 08:59:08 -07:00
rtc-jz4740.c RTC: Add JZ4740 RTC driver 2010-08-05 13:26:17 +01:00
rtc-lib.c
rtc-m41t80.c rtc: m41t80: do not use rtc_valid_tm in m41t80_rtc_read_alarm 2010-09-09 18:57:24 -07:00
rtc-m41t94.c
rtc-m48t35.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-m48t59.c rtc/m48t59: use rtc_valid_tm() to check returned tm 2010-08-11 08:59:07 -07:00
rtc-m48t86.c rtc/m48t86: use rtc_valid_tm() to check returned tm 2010-08-11 08:59:07 -07:00
rtc-max6900.c rtc/max6900: use rtc_valid_tm() to check returning tm 2010-08-11 08:59:07 -07:00
rtc-max6902.c
rtc-max8925.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-mc13783.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-mpc5121.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
rtc-msm6242.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-mv.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-mxc.c rtc/rtc-mxc: remove six unused fields 2010-08-11 08:59:06 -07:00
rtc-nuc900.c rtc/nuc900: fix build warning 2010-08-11 08:59:08 -07:00
rtc-omap.c Revert "rtc: omap: let device wakeup capability be configured from chip init logic" 2010-05-19 11:37:20 -07:00
rtc-pcap.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-pcf2123.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-pcf8563.c drivers/rtc/rtc-pcf8563.c: remove unused struct 2010-08-11 08:59:06 -07:00
rtc-pcf8583.c
rtc-pcf50633.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-pl030.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-pl031.c drivers/rtc/rtc-pl031.c: do not mark PL031 IRQ as shared 2010-09-09 18:57:24 -07:00
rtc-proc.c
rtc-ps3.c
rtc-pxa.c rtc/pxa: remove unnecessary private ops->ioctl() 2010-08-11 08:59:07 -07:00
rtc-r9701.c
rtc-rp5c01.c rtc: rp5c01: add NVRAM support 2010-08-11 08:59:08 -07:00
rtc-rs5c313.c
rtc-rs5c348.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-rs5c372.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-rx8025.c comment typo fixes: charater => character 2010-07-19 11:21:26 +02:00
rtc-rx8581.c drivers/rtc/rtc-rx8581.c: fix setdatetime 2010-07-27 14:32:06 -07:00
rtc-s3c.c rtc: s3c: balance state changes of wakeup flag 2010-09-22 17:22:40 -07:00
rtc-s35390a.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
rtc-sa1100.c
rtc-sh.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-starfire.c
rtc-stk17ta8.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-stmp3xxx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-sun4v.c
rtc-sysfs.c rtc/hctosys: only claim the RTC provided the system time if it did 2010-03-12 15:52:28 -08:00
rtc-test.c
rtc-twl.c
rtc-tx4939.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
rtc-v3020.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rtc-vr41xx.c
rtc-wm831x.c rtc: use genirq directly in rtc-wm831x 2010-05-25 08:07:08 -07:00
rtc-wm8350.c
rtc-x1205.c