linux/drivers/rtc
Alexandre Belloni 42a929edf5 rtc: disable uie before setting time and enable after
commit 7e7c005b4b upstream.

When setting the time in the future with the uie timer enabled,
rtc_timer_do_work will loop for a while because the expiration of the uie
timer was way before the current RTC time and a new timer will be enqueued
until the current rtc time is reached.

If the uie timer is enabled, disable it before setting the time and enable
it after expiring current timers (which may actually be an alarm).

This is the safest thing to do to ensure the uie timer is still
synchronized with the RTC, especially in the UIE emulation case.

Reported-by: syzbot+08116743f8ad6f9a6de7@syzkaller.appspotmail.com
Fixes: 6610e0893b ("RTC: Rework RTC code to use timerqueue for events")
Link: https://lore.kernel.org/r/20191020231320.8191-1-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-17 20:35:43 +01:00
..
class.c
hctosys.c rtc: hctosys: Add missing range error reporting 2018-11-21 09:19:23 +01:00
interface.c rtc: disable uie before setting time and enable after 2019-12-17 20:35:43 +01:00
Kconfig
Makefile
nvmem.c
rtc-88pm80x.c
rtc-88pm860x.c rtc: 88pm860x: prevent use-after-free on device remove 2019-05-31 06:46:13 -07:00
rtc-ab-b5ze-s3.c
rtc-ab3100.c
rtc-ab8500.c
rtc-abx80x.c
rtc-ac100.c
rtc-armada38x.c rtc: armada38x: fix possible race condition 2019-11-20 18:47:52 +01:00
rtc-as3722.c
rtc-asm9260.c
rtc-at91rm9200.c
rtc-at91rm9200.h
rtc-at91sam9.c
rtc-au1xxx.c
rtc-bq32k.c
rtc-bq4802.c
rtc-brcmstb-waketimer.c
rtc-cmos.c rtc: cmos: Do not export alarm rtc_ops when we do not support alarms 2018-12-01 09:37:32 +01:00
rtc-coh901331.c
rtc-core.h
rtc-cpcap.c
rtc-cros-ec.c rtc: cros-ec: Fail suspend/resume if wake IRQ can't be configured 2019-05-08 07:21:45 +02:00
rtc-da9052.c
rtc-da9055.c
rtc-da9063.c rtc: da9063: set uie_unsupported when relevant 2019-05-08 07:21:49 +02:00
rtc-davinci.c
rtc-dev.c
rtc-digicolor.c
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c
rtc-ds1305.c
rtc-ds1307.c
rtc-ds1343.c
rtc-ds1347.c
rtc-ds1374.c
rtc-ds1390.c
rtc-ds1511.c
rtc-ds1553.c
rtc-ds1672.c
rtc-ds1685.c
rtc-ds1742.c
rtc-ds2404.c
rtc-ds3232.c
rtc-efi-platform.c
rtc-efi.c
rtc-em3027.c
rtc-ep93xx.c
rtc-fm3130.c
rtc-ftrtc010.c
rtc-generic.c
rtc-goldfish.c
rtc-hid-sensor-time.c iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers 2018-12-05 19:32:13 +01:00
rtc-hym8563.c
rtc-imxdi.c
rtc-isl1208.c rtc: isl1208: avoid possible sysfs race 2019-11-20 18:47:52 +01:00
rtc-isl12022.c
rtc-isl12026.c
rtc-jz4740.c
rtc-lib.c
rtc-lp8788.c
rtc-lpc24xx.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc-m41t80.c rtc: m41t80: Correct alarm month range with RTC reads 2019-01-09 17:38:48 +01:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc-max6900.c
rtc-max6902.c
rtc-max6916.c
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c rtc: max8997: Fix the returned value in case of error in 'max8997_rtc_read_alarm()' 2019-12-13 08:51:35 +01:00
rtc-max8998.c
rtc-max77686.c rtc: max77686: Fix the returned value in case of error in 'max77686_rtc_read_time()' 2019-12-13 08:51:16 +01:00
rtc-mc13xxx.c
rtc-mc146818-lib.c
rtc-mcp795.c
rtc-moxart.c
rtc-mpc5121.c
rtc-mrst.c
rtc-msm6242.c
rtc-mt6397.c rtc: mt6397: fix possible race condition 2019-11-20 18:46:18 +01:00
rtc-mt7622.c
rtc-mv.c
rtc-mxc_v2.c
rtc-mxc.c
rtc-nuc900.c
rtc-omap.c
rtc-opal.c
rtc-palmas.c
rtc-pcap.c
rtc-pcf2123.c
rtc-pcf2127.c rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write 2018-12-01 09:37:32 +01:00
rtc-pcf8523.c rtc: pcf8523: set xtal load capacitance from DT 2019-11-06 13:05:33 +01:00
rtc-pcf8563.c
rtc-pcf8583.c
rtc-pcf50633.c
rtc-pcf85063.c
rtc-pcf85363.c rtc: pcf85363/pcf85263: fix regmap error in set_time 2019-10-07 18:57:12 +02:00
rtc-pic32.c
rtc-pl030.c rtc: pl030: fix possible race condition 2019-11-20 18:46:18 +01:00
rtc-pl031.c
rtc-pm8xxx.c
rtc-proc.c
rtc-ps3.c
rtc-puv3.c
rtc-pxa.c
rtc-r7301.c
rtc-r9701.c
rtc-rc5t583.c
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc-rtd119x.c
rtc-rv3029c2.c
rtc-rv8803.c rtc: rv8803: fix the rv8803 id in the OF table 2019-11-20 18:45:25 +01:00
rtc-rx4581.c
rtc-rx6110.c
rtc-rx8010.c
rtc-rx8025.c
rtc-rx8581.c
rtc-s3c.c rtc: s3c-rtc: Avoid using broken ALMYEAR register 2019-12-13 08:51:16 +01:00
rtc-s3c.h
rtc-s5m.c
rtc-s35390a.c rtc: s35390a: Change buf's type to u8 in s35390a_init 2019-12-01 09:16:52 +01:00
rtc-sa1100.c
rtc-sa1100.h
rtc-sc27xx.c
rtc-sh.c rtc: sh: Fix invalid alarm warning for non-enabled alarm 2019-05-08 07:21:46 +02:00
rtc-sirfsoc.c
rtc-snvs.c rtc: snvs: fix possible race condition 2019-10-07 18:57:11 +02:00
rtc-spear.c
rtc-st-lpc.c
rtc-starfire.c
rtc-stk17ta8.c
rtc-stm32.c rtc: stm32: manage the get_irq probe defer case 2019-05-31 06:46:13 -07:00
rtc-stmp3xxx.c
rtc-sun4v.c
rtc-sun6i.c
rtc-sunxi.c
rtc-sysfs.c rtc: sysfs: fix NULL check in rtc_add_groups() 2019-11-20 18:45:25 +01:00
rtc-tegra.c
rtc-test.c
rtc-tps6586x.c
rtc-tps65910.c
rtc-tps80031.c
rtc-twl.c
rtc-tx4939.c rtc: tx4939: fixup nvmem name and register size 2019-11-20 18:47:52 +01:00
rtc-v3020.c
rtc-vr41xx.c
rtc-vt8500.c
rtc-wm831x.c
rtc-wm8350.c
rtc-x1205.c
rtc-xgene.c rtc: xgene: fix possible race condition 2019-05-31 06:46:26 -07:00
rtc-zynqmp.c
systohc.c