Gregory CLEMENT
489405fe5e
rtc: armada38x: fix concurrency access in armada38x_rtc_set_time
...
While setting the time, the RTC TIME register should not be accessed.
However due to hardware constraints, setting the RTC time involves
sleeping during 100ms. This sleep was done outside the critical section
protected by the spinlock, so it was possible to read the RTC TIME
register and get an incorrect value. This patch introduces a mutex for
protecting the RTC TIME access, unlike the spinlock it is allowed to
sleep in a critical section protected by a mutex.
The RTC STATUS register can still be used from the interrupt handler but
it has no effect on setting the time.
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: <stable@vger.kernel.org> [4.0]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-05-05 17:10:11 -07:00
..
class.c
drivers/rtc/class.c: initialize rtc name early
2015-04-17 09:04:01 -04:00
hctosys.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
interface.c
drivers/rtc/interface.c: __rtc_read_time: reduce log level
2015-04-17 09:04:01 -04:00
Kconfig
rtc: add rtc-abx80x, a driver for the Abracon AB x80x i2c rtc
2015-05-05 17:10:10 -07:00
Makefile
rtc: add rtc-abx80x, a driver for the Abracon AB x80x i2c rtc
2015-05-05 17:10:10 -07:00
rtc-88pm80x.c
rtc-88pm860x.c
rtc-ab-b5ze-s3.c
drivers/rtc/rtc-ab-b5ze-s3.c: constify struct regmap_config
2015-04-17 09:04:00 -04:00
rtc-ab3100.c
drivers/rtc/ab3100: Update driver to address y2038/y2106 issues
2015-04-03 08:18:25 +02:00
rtc-ab8500.c
rtc-abx80x.c
rtc: add rtc-abx80x, a driver for the Abracon AB x80x i2c rtc
2015-05-05 17:10:10 -07:00
rtc-armada38x.c
rtc: armada38x: fix concurrency access in armada38x_rtc_set_time
2015-05-05 17:10:11 -07:00
rtc-as3722.c
rtc-at32ap700x.c
rtc-at91rm9200.c
drivers/rtc/rtc-at91rm9200.c: make IO endian agnostic
2015-04-17 09:04:12 -04:00
rtc-at91rm9200.h
rtc-at91sam9.c
rtc: at91sam9: rework wakeup and interrupt handling
2015-03-04 22:10:59 +01:00
rtc-au1xxx.c
rtc-bfin.c
rtc-bq32k.c
rtc-bq4802.c
rtc-cmos.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-coh901331.c
rtc-core.h
rtc-da9052.c
drivers/rtc/rtc-da9052.c: register ability of alarm to wake device from suspend
2015-04-17 09:04:00 -04:00
rtc-da9055.c
rtc-da9063.c
rtc-davinci.c
rtc-dev.c
rtc-digicolor.c
rtc: driver for Conexant Digicolor CX92755 on-chip RTC
2015-04-17 09:04:01 -04:00
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c
rtc-ds1305.c
rtc: remove use of seq_printf return value
2015-04-15 16:35:24 -07:00
rtc-ds1307.c
rtc-ds1343.c
rtc-ds1347.c
rtc-ds1374.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-ds1390.c
rtc-ds1511.c
rtc-ds1553.c
rtc-ds1672.c
rtc-ds1685.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-ds1742.c
rtc-ds2404.c
rtc-ds3232.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-ds3234.c
rtc-efi-platform.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-efi.c
rtc-em3027.c
drivers/rtc/rtc-em3027.c: add device tree support
2015-04-17 09:03:59 -04:00
rtc-ep93xx.c
rtc-fm3130.c
rtc-generic.c
rtc-hid-sensor-time.c
rtc-hym8563.c
drivers/rtc/rtc-hym8563.c: fix swapped enable/disable of clockout control bit
2015-04-17 09:04:02 -04:00
rtc-imxdi.c
rtc-isl1208.c
rtc-isl12022.c
rtc-isl12057.c
rtc-jz4740.c
rtc-lib.c
rtc-lp8788.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc-m41t80.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc-max6900.c
rtc-max6902.c
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-max8998.c
rtc-max77686.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-max77802.c
rtc-mc13xxx.c
drivers/rtc/mc13xxx: Update driver to address y2038/y2106 issues
2015-04-03 08:18:26 +02:00
rtc-mcp795.c
rtc-moxart.c
rtc-mpc5121.c
rtc-mrst.c
rtc: remove use of seq_printf return value
2015-04-15 16:35:24 -07:00
rtc-msm6242.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-mv.c
rtc-mxc.c
drivers/rtc/mxc: Update driver to address y2038/y2106 issues
2015-04-03 08:18:29 +02:00
rtc-nuc900.c
rtc-omap.c
drivers/rtc/rtc-omap.c: use module_platform_driver
2015-04-17 09:04:02 -04:00
rtc-opal.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-palmas.c
rtc-pcap.c
rtc-pcf2123.c
rtc-pcf2127.c
rtc-pcf8523.c
rtc-pcf8563.c
drivers/rtc/rtc-pcf8563.c: simplify return from function
2015-04-17 09:03:59 -04:00
rtc-pcf8583.c
rtc-pcf50633.c
rtc-pcf85063.c
rtc-pl030.c
rtc-pl031.c
rtc-pm8xxx.c
rtc-proc.c
rtc-ps3.c
rtc-puv3.c
rtc-pxa.c
rtc-r9701.c
rtc-rc5t583.c
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc-rv3029c2.c
rtc-rx4581.c
rtc-rx8025.c
rtc-rx8581.c
rtc-s3c.c
drivers/rtc/rtc-s3c.c: remove one superfluous rtc_valid_tm() check
2015-04-17 09:04:02 -04:00
rtc-s3c.h
rtc-s5m.c
drivers/rtc/rtc-s5m.c: allow usage on device type different than main MFD type
2015-04-17 09:04:11 -04:00
rtc-s35390a.c
rtc-sa1100.c
rtc-sh.c
rtc-sirfsoc.c
rtc-snvs.c
rtc-spear.c
rtc-starfire.c
rtc-stk17ta8.c
rtc-stmp3xxx.c
rtc: stmp3xxx: use optional crystal in low power states
2015-04-17 09:03:59 -04:00
rtc-sun4v.c
rtc-sun6i.c
rtc-sunxi.c
rtc-sysfs.c
rtc-tegra.c
rtc: remove use of seq_printf return value
2015-04-15 16:35:24 -07:00
rtc-test.c
drivers/rtc/test: Update driver to address y2038/y2106 issues
2015-04-03 08:18:24 +02:00
rtc-tile.c
rtc-tps6586x.c
rtc-tps65910.c
rtc-tps80031.c
rtc-twl.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-tx4939.c
rtc-v3020.c
rtc-vr41xx.c
rtc-vt8500.c
rtc-wm831x.c
rtc-wm8350.c
rtc-x1205.c
drivers/rtc/rtc-x1205.c: use sign_extend32() for sign extension
2015-04-17 09:03:59 -04:00
rtc-xgene.c
systohc.c
drivers/rtc: Provide y2038 safe rtc_class_ops.set_mmss() replacement
2015-04-03 08:18:24 +02:00