linux/drivers/clocksource
Maxime Ripard 6bab4a8a18 clockevent: sun4i: Fix race condition in the probe code
The interrupts were activated and the handler registered before the clockevent
was registered in the probe function.

The interrupt handler, however, was making the assumption that the clockevent
device was registered.

That could cause a null pointer dereference if the timer interrupt was firing
during this narrow window.

Fix that by moving the clockevent registration before the interrupt is enabled.

Reported-by: Roman Byshko <rbyshko@gmail.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2014-11-19 10:43:51 +01:00
..
Kconfig Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-09 06:35:05 -04:00
Makefile Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-09 06:35:05 -04:00
acpi_pm.c
arm_arch_timer.c ARM/ARM64: arch-timer: fix arch_timer_probed logic 2014-10-26 20:50:00 +01:00
arm_global_timer.c ARM: make it easier to check the CPU part number correctly 2014-07-18 12:29:02 +01:00
bcm2835_timer.c
bcm_kona_timer.c
cadence_ttc_timer.c clocksource: cadence_ttc: Add support for 32bit mode 2014-09-29 01:59:09 +02:00
clksrc-dbx500-prcmu.c
clksrc-of.c of: consolidate linker section OF match table declarations 2014-05-20 14:25:24 -05:00
clps711x-timer.c clocksource: clps711x: Add CLPS711X clocksource driver 2014-07-23 12:02:35 +02:00
cs5535-clockevt.c
dummy_timer.c time: Replace __get_cpu_var uses 2014-08-26 13:45:44 -04:00
dw_apb_timer.c
dw_apb_timer_of.c clocksource: dw_apb_timer_of: Do not trace read_sched_clock 2014-05-23 09:23:09 +02:00
em_sti.c clocksource: em_sti: Remove unnecessary OOM messages 2014-05-23 09:23:10 +02:00
exynos_mct.c clocksource: exynos_mct: Only use 32-bits where possible 2014-07-23 12:02:41 +02:00
fsl_ftm_timer.c clocksource: Add Freescale FlexTimer Module (FTM) timer support 2014-05-23 10:12:04 +02:00
i8253.c
meson6_timer.c ARM: meson6: clocksource: Add Meson6 timer support 2014-09-29 01:50:05 +02:00
metag_generic.c drivers/clocksource: Replace __get_cpu_var used for address calculation 2014-08-26 13:45:46 -04:00
mmio.c clocksource: Fix clocksource_mmio_readX_down 2014-05-23 09:19:40 +02:00
moxart_timer.c
mtk_timer.c clocksource: Add support for the Mediatek SoCs 2014-07-23 12:02:31 +02:00
mxs_timer.c
nomadik-mtu.c
pxa_timer.c clocksource: pxa: Add device-tree support for PXA timer 2014-07-23 12:02:37 +02:00
qcom-timer.c clocksource: Replace __this_cpu_ptr with raw_cpu_ptr 2014-08-26 13:45:56 -04:00
samsung_pwm_timer.c
scx200_hrt.c
sh_cmt.c clocksource: sh_cmt: Add DT support 2014-07-04 15:46:17 +02:00
sh_mtu2.c clocksource: sh_mtu2: Add DT support 2014-07-04 15:50:29 +02:00
sh_tmu.c clocksource: sh_tmu: Add DT support 2014-07-04 15:50:28 +02:00
sun4i_timer.c clockevent: sun4i: Fix race condition in the probe code 2014-11-19 10:43:51 +01:00
tcb_clksrc.c clocksource: tcb_clksrc: Sanitize IRQ request 2014-09-29 01:50:05 +02:00
tegra20_timer.c clocksource: tegra: Use us counter as delay timer 2014-06-16 12:48:12 -06:00
time-armada-370-xp.c
time-efm32.c clocksource: efm32: use $vendor,$device scheme for compatible string 2014-04-22 11:44:28 +02:00
time-orion.c
timer-atmel-pit.c ARM: at91: PIT: Move the driver to drivers/clocksource 2014-09-15 17:55:48 +02:00
timer-keystone.c
timer-marco.c clocksource: sirf: Disable counter before re-setting it 2014-09-29 01:59:24 +02:00
timer-prima2.c clocksource: sirf: Fix incorrect clock enable counter for timer 2014-07-23 12:02:34 +02:00
timer-sun5i.c clocksource: sun5i: Add support for reset controller 2014-04-22 13:56:50 +02:00
timer-u300.c
versatile.c clocksource: versatile: Use sched_clock_register() 2014-06-04 07:46:10 -07:00
vf_pit_timer.c clocksource: vf_pit_timer: Support shutdown mode 2014-09-29 01:50:05 +02:00
vt8500_timer.c
zevio-timer.c clocksource: nspire: Fix compiler warning 2014-04-29 15:06:43 +02:00