Steve Twiss
77535acedc
rtc: da9063: fix access ordering error during RTC interrupt at system power on
...
This fix alters the ordering of the IRQ and device registrations in the RTC
driver probe function. This change will apply to the RTC driver that supports
both DA9063 and DA9062 PMICs.
A problem could occur with the existing RTC driver if:
A system is started from a cold boot using the PMIC RTC IRQ to initiate a
power on operation. For instance, if an RTC alarm is used to start a
platform from power off.
The existing driver IRQ is requested before the device has been properly
registered.
i.e.
ret = devm_request_threaded_irq()
comes before
rtc->rtc_dev = devm_rtc_device_register();
In this case, the interrupt can be called before the device has been
registered and the handler can be called immediately. The IRQ handler
da9063_alarm_event() contains the function call
rtc_update_irq(rtc->rtc_dev, 1, RTC_IRQF | RTC_AF);
which in turn tries to access the unavailable rtc->rtc_dev.
The fix is to reorder the functions inside the RTC probe. The IRQ is
requested after the RTC device resource has been registered so that
get_irq_byname is the last thing to happen.
Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2015-12-20 13:39:29 +01:00
..
class.c
rtc: switch to using is_visible() to control sysfs attributes
2015-09-05 13:19:07 +02:00
hctosys.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
interface.c
rtc: Drop (un)likely before IS_ERR(_OR_NULL)
2015-09-05 13:19:09 +02:00
Kconfig
rtc: Add a driver for Micro Crystal RV8803
2015-11-08 14:12:32 +01:00
Makefile
rtc: Add a driver for Micro Crystal RV8803
2015-11-08 14:12:32 +01:00
rtc-88pm80x.c
rtc: 88pm80x: add device tree support
2015-09-05 13:19:05 +02:00
rtc-88pm860x.c
rtc-ab-b5ze-s3.c
rtc: Export OF module alias information in missing drivers
2015-09-05 13:19:08 +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
rtc: ab8500: remove misuse of IRQF_NO_SUSPEND flag
2015-11-08 14:12:25 +01:00
rtc-abx80x.c
rtc: abx80x: fix RTC write bit
2015-09-05 19:37:31 +02:00
rtc-armada38x.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
rtc-as3722.c
rtc: as3722: correct month value
2015-09-05 19:37:18 +02:00
rtc-at32ap700x.c
rtc: at32ap700x: update author email
2015-06-25 01:12:50 +02:00
rtc-at91rm9200.c
rtc: at91rm9200: clear RTC alarm status flag prior to suspending
2015-11-08 14:12:28 +01:00
rtc-at91rm9200.h
rtc-at91sam9.c
rtc: at91sam9: remove useless include
2015-09-05 13:19:13 +02:00
rtc-au1xxx.c
rtc-bfin.c
rtc: Drop (un)likely before IS_ERR(_OR_NULL)
2015-09-05 13:19:09 +02:00
rtc-bq32k.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-bq4802.c
rtc-cmos.c
rtc: cmos: clean up cmos_nvram_read()/cmos_nvram_write()
2015-09-05 13:19:09 +02:00
rtc-coh901331.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
rtc-core.h
rtc: switch to using is_visible() to control sysfs attributes
2015-09-05 13:19:07 +02:00
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: da9063: fix access ordering error during RTC interrupt at system power on
2015-12-20 13:39:29 +01:00
rtc-davinci.c
rtc: davinci: remove incorrect reference to probe function
2015-11-08 14:12:29 +01:00
rtc-dev.c
rtc: dev: properly manage lifetime of dev and cdev in rtc device
2015-09-05 13:19:07 +02: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-ds1216.c
rtc: simplify use of devm_ioremap_resource
2015-06-25 01:13:40 +02:00
rtc-ds1286.c
rtc: simplify use of devm_ioremap_resource
2015-06-25 01:13:40 +02:00
rtc-ds1302.c
rtc-ds1305.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-ds1307.c
rtc: ds1307: fix alarm reading at probe time
2015-11-26 18:11:26 +01:00
rtc-ds1343.c
RTC for 4.4
2015-11-10 10:01:21 -08:00
rtc-ds1347.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-ds1374.c
rtc: ds1374: Remove unused variable
2015-09-05 19:37:22 +02:00
rtc-ds1390.c
RTC for 4.4
2015-11-10 10:01:21 -08:00
rtc-ds1511.c
rtc: ds1511: clean up ds1511_nvram_read()/ds1511_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-ds1553.c
rtc: ds1553: clean up ds1553_nvram_read()/ds1553_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-ds1672.c
rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE
2015-06-25 01:13:36 +02:00
rtc-ds1685.c
rtc: ds1685: Use module_platform_driver
2015-09-05 13:19:05 +02:00
rtc-ds1742.c
rtc: ds1742: clean up ds1742_nvram_read()/ds1742_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-ds2404.c
rtc-ds3232.c
rtc: ds3232: fix WARNING trace in resume function
2015-09-05 19:36:21 +02:00
rtc-ds3234.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-efi-platform.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-efi.c
rtc: efi: use correct EFI 'epoch'
2015-06-25 01:13:44 +02: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: ep93xx: Use readl/writel for io
2015-06-25 01:13:38 +02:00
rtc-fm3130.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-gemini.c
rtc: gemini: fix ptr_ret.cocci warnings
2015-09-05 13:19:09 +02:00
rtc-generic.c
rtc-hid-sensor-time.c
rtc: hid-sensor-time: Constify platform_device_id
2015-06-19 20:03:20 +02:00
rtc-hym8563.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-imxdi.c
rtc: imxdi: when locked, do not fail silently
2015-06-19 20:03:21 +02:00
rtc-isl1208.c
rtc: isl1208: Pass the IRQF_ONESHOT flag
2015-11-08 14:12:30 +01:00
rtc-isl12022.c
rtc: Export OF module alias information in missing drivers
2015-09-05 13:19:08 +02:00
rtc-isl12057.c
rtc: isl12057: enable support for the standard "wakeup-source" property
2015-11-08 14:12:30 +01:00
rtc-jz4740.c
rtc-lib.c
rtc-lp8788.c
rtc-lpc24xx.c
rtc: add rtc-lpc24xx driver
2015-09-05 13:19:06 +02:00
rtc-lpc32xx.c
rtc-ls1x.c
MIPS: Loongson: Naming style cleanup and rework
2015-06-21 21:53:59 +02:00
rtc-m41t80.c
rtc: use more standard kernel logging styles
2015-04-17 09:04:02 -04:00
rtc-m41t93.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-m41t94.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-m48t35.c
rtc-m48t59.c
rtc: m48t59: clean up m48t59_nvram_read()/m48t59_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-m48t86.c
rtc-max6900.c
rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE
2015-06-25 01:13:36 +02:00
rtc-max6902.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c
rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers
2015-09-05 19:37:21 +02:00
rtc-max8998.c
rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE
2015-06-25 01:13:36 +02:00
rtc-max77686.c
rtc: max77686: Report platform modalias to fix module autoload
2015-06-25 01:13:37 +02:00
rtc-max77802.c
rtc: max77802: Report platform modalias to fix module autoload
2015-06-25 01:13:37 +02:00
rtc-mc13xxx.c
rtc: mc13xxx: fix obfuscated and wrong format string
2015-06-25 01:13:35 +02:00
rtc-mcp795.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-moxart.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
rtc-mpc5121.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +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-mt6397.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
rtc-mv.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
rtc-mxc.c
rtc: mxc: add support of device tree
2015-08-05 20:03:56 +08:00
rtc-nuc900.c
rtc-omap.c
rtc: omap: Add external clock enabling support
2015-09-05 19:37:21 +02:00
rtc-opal.c
rtc: opal: enable support for the stardard "wakeup-source" property
2015-11-08 14:12:30 +01:00
rtc-palmas.c
rtc: palmas: Initialise bb_charging flag before using it
2015-06-25 01:13:40 +02:00
rtc-pcap.c
rtc-pcf2123.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-pcf2127.c
rtc: pcf2127: remove useless driver version
2015-11-08 14:12:28 +01:00
rtc-pcf8523.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-pcf8563.c
rtc: pcf8563: add CLKOUT to common clock framework
2015-11-08 14:12:29 +01:00
rtc-pcf8583.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-pcf50633.c
rtc-pcf85063.c
rtc: pcf85063: return an error when date is invalid
2015-11-08 14:12:26 +01:00
rtc-pl030.c
rtc-pl031.c
rtc: pl031: remove misuse of IRQF_NO_SUSPEND flag
2015-11-08 14:12:24 +01:00
rtc-pm8xxx.c
rtc-proc.c
rtc-ps3.c
rtc-puv3.c
rtc-pxa.c
rtc: sa1100/pxa: convert to run-time register mapping
2015-09-05 19:37:16 +02:00
rtc-r9701.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-rc5t583.c
rtc-rk808.c
rtc: rk808: Compensate for Rockchip calendar deviation on November 31st
2015-12-20 13:39:00 +01:00
rtc-rp5c01.c
rtc: rp5c01: clean up rp5c01_nvram_read()/rp5c01_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-rs5c313.c
rtc-rs5c348.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-rs5c372.c
rtc-rv3029c2.c
rtc-rv8803.c
rtc: Add a driver for Micro Crystal RV8803
2015-11-08 14:12:32 +01:00
rtc-rx4581.c
spi: Drop owner assignment from spi_drivers
2015-10-28 10:30:17 +09:00
rtc-rx8025.c
rtc: rx8025: remove unnecessary braces
2015-11-08 14:12:25 +01:00
rtc-rx8581.c
rtc: Drop owner assignment from i2c_driver
2015-09-05 13:19:06 +02:00
rtc-s3c.c
rtc: s3c: Set year, month, day value for setting alarm
2015-11-08 14:12:31 +01:00
rtc-s3c.h
rtc-s5m.c
rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers
2015-09-05 19:37:21 +02:00
rtc-s35390a.c
rtc-sa1100.c
rtc: sa1100/pxa: convert to run-time register mapping
2015-09-05 19:37:16 +02:00
rtc-sa1100.h
rtc: sa1100/pxa: convert to run-time register mapping
2015-09-05 19:37:16 +02:00
rtc-sh.c
rtc-sirfsoc.c
rtc: sirfsoc: move to regmap APIs from platform-specific APIs
2015-09-05 13:19:06 +02:00
rtc-snvs.c
rtc: snvs: use syscon to access register
2015-07-15 10:15:10 +08:00
rtc-spear.c
rtc: simplify use of devm_ioremap_resource
2015-06-25 01:13:40 +02:00
rtc-st-lpc.c
rtc: st: Update IP layout information to include Clocksource
2015-07-23 17:07:35 +01:00
rtc-starfire.c
rtc-stk17ta8.c
rtc: stk17ta8: clean up stk17ta8_nvram_read()/stk17ta8_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-stmp3xxx.c
rtc: stmp3xxx: unify register access macros
2015-11-08 14:12:27 +01:00
rtc-sun4v.c
rtc-sun6i.c
rtc-sunxi.c
rtc: sunxi: Replace deprecated rtc_tm_to_time()
2015-06-25 01:13:42 +02:00
rtc-sysfs.c
rtc: switch to using is_visible() to control sysfs attributes
2015-09-05 13:19:07 +02: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-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: tx4939: clean up tx4939_rtc_nvram_read()/tx4939_rtc_nvram_write()
2015-09-05 13:19:10 +02:00
rtc-v3020.c
rtc: rtc-v3020: use gpio_request_array()
2015-06-25 01:13:38 +02:00
rtc-vr41xx.c
rtc-vt8500.c
rtc: Fix module autoload for OF platform drivers
2015-09-05 19:37:22 +02:00
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
rtc-zynqmp.c
rtc: add xilinx zynqmp rtc driver
2015-09-05 19:37:19 +02:00
systohc.c
rtc: NTP: Add CONFIG_RTC_SYSTOHC_DEVICE for NTP synchronization
2015-06-25 01:13:42 +02:00