2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 12:14:01 +08:00
linux-next/drivers
Steve Twiss 6406d96e74 rtc: da9053: 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 DA9052 and DA9053 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 = da9052_request_irq()
comes before
rtc->rtc = devm_rtc_device_register();

In this case, an interrupt exists before the device has been registered and
the IRQ handler can be called immediately: this can happen be before the
memory for rtc->rtc has been allocated. The IRQ handler da9052_rtc_irq()
contains the function call:

rtc_update_irq(rtc->rtc, 1, RTC_IRQF | RTC_AF);

which in turn tries to access the unavailable rtc->rtc.

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
da9052_request_irq() 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>
2016-05-20 12:33:51 +02:00
..
accessibility
acpi Power management and ACPI fixes for v4.6-rc7 2016-05-06 11:58:45 -07:00
amba
android
ata ata: add AMD Seattle platform driver 2016-04-13 15:14:24 -04:00
atm Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
auxdisplay
base Merge remote-tracking branches 'regmap/fix/be', 'regmap/fix/doc' and 'regmap/fix/spmi' into regmap-linus 2016-05-13 10:36:10 +01:00
bcma bcma: fix building without OF_IRQ 2016-03-23 17:52:10 +02:00
block rbd: report unsupported features to syslog 2016-04-28 10:07:43 +02:00
bluetooth
bus mvebu fixes for 4.6 (part 1) 2016-04-12 12:35:07 -07:00
cdrom
char hwrng: bcm63xx - fix device tree compilation 2016-04-05 20:23:11 +08:00
clk The i.MX clock fixes for 4.6: 2016-04-15 15:40:49 -07:00
clocksource Merge branches 'perf-urgent-for-linus', 'smp-urgent-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-04-23 11:45:52 -07:00
connector
cpufreq Merge branches 'pm-opp-fixes', 'pm-cpufreq-fixes' and 'pm-cpuidle-fixes' 2016-05-06 13:16:22 +02:00
cpuidle ARM: cpuidle: Pass on arm_cpuidle_suspend()'s return value 2016-04-28 15:15:14 +02:00
crypto crypto: qat - fix adf_ctl_drv.c:undefined reference to adf_init_pf_wq 2016-05-03 15:53:48 +08:00
dca
devfreq PM / devfreq: Spelling s/frequnecy/frequency/ 2016-03-17 02:30:16 +01:00
dio
dma Merge branch 'fix/edma' into fixes 2016-04-16 22:52:03 +05:30
dma-buf dma-buf: Update docs for SYNC ioctl 2016-03-21 09:26:45 +01:00
edac EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder callback 2016-04-29 15:43:10 +02:00
eisa
extcon extcon: palmas: Drop stray IRQF_EARLY_RESUME flag 2016-04-04 08:32:45 +09:00
firewire IEEE 1394 subsystem patch: 2016-03-25 08:52:25 -07:00
firmware virtio/qemu: fixes for 4.6 2016-05-05 08:26:54 -07:00
fmc
fpga
gpio gpiolib-acpi: Duplicate con_id string when adding it to the crs lookup list 2016-04-30 13:51:59 +02:00
gpu drm/amdgpu: fix DP mode validation 2016-05-12 15:03:49 -04:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2016-05-03 11:06:01 -07:00
hsi
hv Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read() 2016-04-30 14:05:44 -07:00
hwmon hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated 2016-03-27 10:37:48 -07:00
hwspinlock
hwtracing
i2c i2c: exynos5: Fix possible ABBA deadlock by keeping I2C clock prepared 2016-04-22 15:31:54 +02:00
ide ide: palm_bk3710: test clock rate to avoid division by 0 2016-03-20 16:59:27 -04:00
idle intel_idle: Add KBL support 2016-04-07 22:11:08 +02:00
iio iio: imu: mpu6050: Fix name/chip_id when using ACPI 2016-05-04 08:44:27 +01:00
infiniband Late 4.6-rc fixes 2016-05-07 08:10:08 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-05-12 12:47:49 -07:00
iommu iommu/arm-smmu: Don't allocate resources for bypass domains 2016-04-21 16:47:32 +02:00
ipack
irqchip irqchip/mips-gic: Don't overrun pcpu_masks array 2016-04-21 21:04:29 +02:00
isdn mISDN: Fixing missing validation in base_sock_bind() 2016-04-13 23:00:50 -04:00
leds platform-drivers-x86 for 4.6-1 2016-03-23 17:20:59 -07:00
lguest lguest, x86/entry/32: Fix handling of guest syscalls using interrupt gates 2016-04-01 08:58:13 +02:00
lightnvm lightnvm: do not load L2P table if not supported 2016-03-18 18:10:38 -07:00
macintosh
mailbox Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2016-04-14 18:40:47 -07:00
mcb
md Merge tag 'md/4.6-rc6-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2016-05-02 12:22:51 -07:00
media media fixes for v4.6-rc8 2016-05-13 09:34:59 -07:00
memory MTD updates for v4.6 2016-03-24 19:57:15 -07:00
memstick drivers/memstick/host/r592.c: avoid gcc-6 warning 2016-03-25 16:37:42 -07:00
message
mfd - New Drivers 2016-03-18 10:15:11 -07:00
misc Char/Misc driver fixes for 4.6-rc7 2016-05-07 10:53:32 -07:00
mmc mmc: sunxi: Disable eMMC HS-DDR (MMC_CAP_1_8V_DDR) for Allwinner A80 2016-04-28 11:43:54 +02:00
mtd One MTD fix for v4.6-rc4: 2016-04-15 15:25:09 -07:00
net drivers: net: xgene: fix register offset 2016-05-13 21:12:07 -04:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
ntb NTB: Remove _addr functions from ntb_hw_amd 2016-03-26 11:44:33 -04:00
nubus
nvdimm libnvdimm, pfn: fix ARCH=alpha allmodconfig build failure 2016-05-06 10:20:10 -07:00
nvme NVMe: Always use MSI/MSI-x interrupts 2016-04-14 14:04:50 -06:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-02 08:18:01 -07:00
of DeviceTree updates for 4.6: 2016-03-19 15:15:07 -07:00
oprofile mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
parisc PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
parport
pci PCI updates for v4.6: 2016-05-10 12:04:40 -07:00
pcmcia pcmcia: db1xxx_ss: fix last irq_to_gpio user 2016-03-29 22:48:53 +02:00
perf drivers/perf: arm-pmu: fix RCU usage on pmu resume from low-power 2016-04-21 15:03:06 +01:00
phy phy: rockchip-emmc: should be a child device of the GRF 2016-04-13 18:33:05 +05:30
pinctrl pinctrl: at91-pio4: fix pull-up/down logic 2016-04-29 11:16:19 +02:00
platform platform-drivers-x86 for 4.6-3 2016-04-27 08:57:11 -07:00
pnp
power Power management and ACPI material for v4.6-rc1, part 2 2016-03-25 16:55:37 -07:00
powercap powercap: intel_rapl: Add missing Haswell model 2016-04-05 03:44:48 +02:00
pps
ps3
ptp Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-15 12:13:56 -07:00
pwm pwm: fsl-ftm: Use flat regmap cache 2016-04-14 16:54:00 +02:00
rapidio rapidio/mport_cdev: fix uapi type definitions 2016-05-05 17:38:53 -07:00
ras
regulator Merge remote-tracking branches 'regulator/fix/axp20x', 'regulator/fix/da9063', 'regulator/fix/gpio' and 'regulator/fix/s2mps11' into regulator-linus 2016-05-13 11:11:08 +01:00
remoteproc remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value 2016-03-28 16:19:00 -07:00
reset
rpmsg
rtc rtc: da9053: fix access ordering error during RTC interrupt at system power on 2016-05-20 12:33:51 +02:00
s390 s390/sclp_ctl: fix potential information leak with /dev/sclp 2016-04-27 09:33:39 +02:00
sbus
scsi SCSI fixes on 20160511 2016-05-11 13:17:12 -07:00
sfi
sh
sn
soc Revert "soc: mediatek: SCPSYS: Fix double enabling of regulators" 2016-04-13 11:55:08 +02:00
spi Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/omap2-mcspi', 'spi/fix/pxa2xx' and 'spi/fix/ti-qspi' into spi-linus 2016-05-06 18:20:37 +01:00
spmi
ssb
staging Final set of -rc fixes for 4.6 2016-04-29 17:07:54 -07:00
target target: add a new add_wwn_groups fabrics method 2016-03-30 20:06:44 -07:00
tc
thermal thermal: use %d to print S32 parameters 2016-04-27 15:54:51 -07:00
thunderbolt
tty devpts: more pty driver interface cleanups 2016-04-26 15:47:32 -07:00
uio
usb Revert "USB / PM: Allow USB devices to remain runtime-suspended when sleeping" 2016-05-02 08:44:31 -07:00
uwb
vfio VFIO updates for v4.6-rc1 2016-03-17 13:05:09 -07:00
vhost Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2016-03-22 12:41:14 -07:00
video omapfb: panel-sharp-ls037v7dw01: fix check of gpio_to_desc() return value 2016-04-18 12:18:37 +03:00
virt
virtio virtio: Silence uninitialized variable warning 2016-05-01 15:50:08 +03:00
vlynq
vme
w1
watchdog hpwdt: use nmi_panic() when kernel panics in NMI handler 2016-03-22 15:36:02 -07:00
xen xen/evtchn: fix ring resize when binding new events 2016-05-04 16:37:01 +01:00
zorro
Kconfig
Makefile