linux/drivers/rtc
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-88pm860x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02: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 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
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-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 drivers/rtc/rtc-as3722.c: use SIMPLE_DEV_PM_OPS macro 2014-04-03 16:21:22 -07:00
rtc-at32ap700x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-at91rm9200.c drivers/rtc/rtc-at91rm9200.c: make IO endian agnostic 2015-04-17 09:04:12 -04:00
rtc-at91rm9200.h Revert "drivers/rtc/rtc-at91rm9200.c: use a variable for storing IMR" 2013-04-05 09:36:53 -07:00
rtc-at91sam9.c rtc: at91sam9: rework wakeup and interrupt handling 2015-03-04 22:10:59 +01:00
rtc-au1xxx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-bfin.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-bq32k.c drivers/rtc/rtc-bq32k.c: fix register value 2014-10-29 16:33:14 -07:00
rtc-bq4802.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-cmos.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-coh901331.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-da9063.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-davinci.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-dev.c rtc: Update rtc-dev to use y2038-safe time interfaces 2015-01-23 17:21:56 -08:00
rtc-digicolor.c rtc: driver for Conexant Digicolor CX92755 on-chip RTC 2015-04-17 09:04:01 -04:00
rtc-dm355evm.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1216.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1286.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1302.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1305.c rtc: remove use of seq_printf return value 2015-04-15 16:35:24 -07:00
rtc-ds1307.c rtc: ds1307: add support for mcp7940x chips 2014-12-10 17:41:15 -08:00
rtc-ds1343.c drivers/rtc/rtc-ds1343.c: add support of nvram for maxim dallas rtc ds1343 2014-08-08 15:57:19 -07:00
rtc-ds1347.c rtc: add support for maxim dallas rtc ds1347 2014-04-03 16:21:23 -07:00
rtc-ds1374.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-ds1390.c rtc: rtc-ds1390: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-ds1511.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1553.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1672.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds1685.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-ds1742.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds2404.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds3232.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-ds3234.c drivers/rtc/rtc-ds3234.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-efi-platform.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-efi.c * Move efivarfs from the misc filesystem section to pseudo filesystem, 2015-01-29 19:16:40 +01:00
rtc-em3027.c drivers/rtc/rtc-em3027.c: add device tree support 2015-04-17 09:03:59 -04:00
rtc-ep93xx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-fm3130.c drivers/rtc/rtc-fm3130.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-generic.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-hid-sensor-time.c HID: hid-sensor-hub: Extend API for async reads 2015-02-23 15:16:37 +01:00
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 drivers/rtc/rtc-imxdi.c: add more known register bits 2015-02-13 21:21:43 -08:00
rtc-isl1208.c drivers/rtc/rtc-isl1208.c: use devm_* APIs 2013-11-13 12:09:27 +09:00
rtc-isl12022.c rtc: isl12022: deprecate use of isl in compatible string for isil 2015-02-16 17:56:02 -08:00
rtc-isl12057.c rtc: isl12057: deprecate use of isl in compatible string for isil 2015-02-16 17:56:02 -08:00
rtc-jz4740.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-lib.c rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm() replacement 2014-11-21 12:00:00 -08:00
rtc-lp8788.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-lpc32xx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ls1x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-m41t80.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-m41t93.c drivers/rtc/rtc-m41t93.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-m41t94.c drivers/rtc/rtc-m41t94.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-m48t35.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-m48t59.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-m48t86.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max6900.c drivers/rtc/rtc-max6900.c: remove redundant checks 2013-11-13 12:09:27 +09:00
rtc-max6902.c drivers/rtc/rtc-max6902.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-max8907.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max8925.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max8997.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-max8998.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max77686.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-max77802.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-mc13xxx.c drivers/rtc/mc13xxx: Update driver to address y2038/y2106 issues 2015-04-03 08:18:26 +02:00
rtc-mcp795.c drivers/rtc: add support for Microchip MCP795 2014-06-06 16:08:08 -07:00
rtc-moxart.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-mpc5121.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-pcap.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-pcf2123.c drivers/rtc/rtc-pcf2123.c: add support for devicetree 2015-02-13 21:21:42 -08:00
rtc-pcf2127.c drivers/rtc/rtc-pcf2127.c: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2014-01-23 16:37:00 -08:00
rtc-pcf8523.c drivers/rtc/rtc-pcf8523.c: fix month definition 2014-05-06 13:04:58 -07:00
rtc-pcf8563.c drivers/rtc/rtc-pcf8563.c: simplify return from function 2015-04-17 09:03:59 -04:00
rtc-pcf8583.c rtc: use c99 initializers in structures 2014-10-14 02:18:17 +02:00
rtc-pcf50633.c rtc: rtc-pcf50633: use devm_*() functions 2013-04-29 18:28:38 -07:00
rtc-pcf85063.c rtc: add pcf85063 support 2014-08-08 15:57:20 -07:00
rtc-pl030.c drivers/rtc/rtc-pl030.c: use devm_kzalloc() instead of kmalloc() 2013-11-13 12:09:31 +09:00
rtc-pl031.c drivers/rtc/rtc-pl03x.c: remove unnecessary amba_set_drvdata() 2013-11-13 12:09:31 +09:00
rtc-pm8xxx.c Merge branch 'platform/remove_owner' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into driver-core-next 2014-11-03 19:53:56 -08:00
rtc-proc.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
rtc-ps3.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-puv3.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-pxa.c drivers/rtc/rtc-pxa.c: make of_device_id array const 2014-06-06 16:08:09 -07:00
rtc-r9701.c rtc: rtc-r9701: use spi_set_drvdata() 2013-04-29 18:28:34 -07:00
rtc-rc5t583.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-rk808.c drivers/rtc/rtc-rk808.c: fix rtc time reading issue 2015-02-13 21:21:43 -08:00
rtc-rp5c01.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-rs5c313.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-rs5c348.c drivers/rtc/rtc-rs5c348.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-rs5c372.c drivers/rtc/rtc-rs5c372.c: use %*ph to dump small buffers 2014-10-14 02:18:19 +02:00
rtc-rv3029c2.c drivers/rtc/rtc-rv3029c2.c: fix potential race condition 2014-04-03 16:21:24 -07:00
rtc-rx4581.c drivers/rtc/rtc-rx4581.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-rx8025.c rtc: rtc-rx8025: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-rx8581.c drivers/rtc/rtc-rx8581.c: add SMBus-only adapters support 2014-01-23 16:37:00 -08:00
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: s3c: make header file local 2013-04-19 13:51:25 +02:00
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: rtc-s35390a: use devm_*() functions 2013-04-29 18:28:38 -07:00
rtc-sa1100.c drivers/rtc/rtc-sa1100.c: make of_device_id array const 2014-06-06 16:08:09 -07:00
rtc-sh.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-sirfsoc.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
rtc-snvs.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
rtc-spear.c rtc: rtc-spear: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-starfire.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-stk17ta8.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-stmp3xxx.c rtc: stmp3xxx: use optional crystal in low power states 2015-04-17 09:03:59 -04:00
rtc-sun4v.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-sun6i.c rtc: sun6i: Add sun6i RTC driver 2014-09-19 12:39:19 +02:00
rtc-sunxi.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-sysfs.c rtc: convert class code to use dev_groups 2013-07-29 13:10:58 -07:00
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: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps6586x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps65910.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps80031.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-twl.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-tx4939.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-v3020.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-vr41xx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-vt8500.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-wm831x.c drivers/rtc/rtc-wm831x.c: remove empty function 2013-07-03 16:07:59 -07:00
rtc-wm8350.c rtc: rtc-wm8350: switch to using SIMPLE_DEV_PM_OPS 2013-04-29 18:28:32 -07:00
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 rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
systohc.c drivers/rtc: Provide y2038 safe rtc_class_ops.set_mmss() replacement 2015-04-03 08:18:24 +02:00