Chen-Yu Tsai
b53e7d000d
clocksource/drivers/sun4i: Clear interrupts after stopping timer in probe function
...
The bootloader (U-boot) sometimes uses this timer for various delays.
It uses it as a ongoing counter, and does comparisons on the current
counter value. The timer counter is never stopped.
In some cases when the user interacts with the bootloader, or lets
it idle for some time before loading Linux, the timer may expire,
and an interrupt will be pending. This results in an unexpected
interrupt when the timer interrupt is enabled by the kernel, at
which point the event_handler isn't set yet. This results in a NULL
pointer dereference exception, panic, and no way to reboot.
Clear any pending interrupts after we stop the timer in the probe
function to avoid this.
Cc: stable@vger.kernel.org
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2016-08-26 15:56:01 +02:00
..
acpi_pm.c
clocksource/drivers/acpi_pm: Convert to pr_* macros
2015-12-29 12:52:57 +01:00
arm_arch_timer.c
clocksource/arm_arch_timer: Force per-CPU interrupt to be level-triggered
2016-08-01 16:15:53 +02:00
arm_global_timer.c
clocksource/arm_global_timer: Convert to hotplug state machine
2016-07-15 10:41:44 +02:00
armv7m_systick.c
clocksource/drivers/armv7m_systick: Add the COMPILE_TEST option
2016-06-28 10:22:05 +02:00
asm9260_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
bcm2835_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
bcm_kona_timer.c
clocksource/drivers/kona: Fix get_counter() error handling
2016-08-17 13:08:31 +02:00
cadence_ttc_timer.c
clocksource/drivers/cadence_ttc: fix a return value in case of error
2016-07-07 09:44:38 +02:00
clksrc-dbx500-prcmu.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
clksrc-probe.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
clksrc_st_lpc.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
clps711x-timer.c
ARM: SoC driver updates for v4.8
2016-08-01 18:36:01 -04:00
cs5535-clockevt.c
dummy_timer.c
clocksource/dummy_timer: Convert to hotplug state machine
2016-07-15 10:40:24 +02:00
dw_apb_timer.c
clockevents/drivers/dw_apb_timer: Implement ->set_state_oneshot_stopped()
2016-04-28 15:09:03 +02:00
dw_apb_timer_of.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
em_sti.c
exynos_mct.c
clocksource/exynos_mct: Convert to hotplug state machine
2016-07-15 10:41:44 +02:00
fsl_ftm_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
h8300_timer8.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
h8300_timer16.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
h8300_tpu.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
i8253.c
Kconfig
clocksource/drivers/arm_arch_timer: Control the evtstrm via the cmdline
2016-06-28 11:35:50 +02:00
Makefile
clocksource/drivers/integrator-ap: Add the COMPILE_TEST option
2016-06-28 10:22:16 +02:00
meson6_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
metag_generic.c
clocksource/metag: Convert to hotplug state machine
2016-07-15 10:40:25 +02:00
mips-gic-timer.c
clocksource/drivers/mips-gic-timer: Make gic_clocksource_of_init() return int
2016-08-17 13:08:32 +02:00
mmio.c
clocksource: Mmio: remove artificial 32bit limitation
2015-12-10 19:37:18 +01:00
moxart_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
mps2-timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
mtk_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
mxs_timer.c
clocksource/drivers/mxs: Remove useless header <asm/mach/time.h>
2016-06-28 10:22:09 +02:00
nomadik-mtu.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
numachip.c
pxa_timer.c
clocksource/drivers/pxa: Fix include files for compilation
2016-08-24 11:16:38 +02:00
qcom-timer.c
clocksource/qcom-timer: Convert to hotplug state machine
2016-07-15 10:40:25 +02:00
rockchip_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
samsung_pwm_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
scx200_hrt.c
sh_cmt.c
sh_mtu2.c
sh_tmu.c
sun4i_timer.c
clocksource/drivers/sun4i: Clear interrupts after stopping timer in probe function
2016-08-26 15:56:01 +02:00
tango_xtal.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
tcb_clksrc.c
clockevents/tcb_clksrc: Prevent disabling an already disabled clock
2016-01-15 11:40:44 +01:00
tegra20_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
time-armada-370-xp.c
clocksource/drivers/time-armada-370-xp: Fix the clock reference
2016-08-17 13:08:31 +02:00
time-efm32.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
time-lpc32xx.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
time-orion.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
time-pistachio.c
drivers/clocksource/pistachio: Fix memory corruption in init
2016-08-26 15:55:59 +02:00
timer-atlas7.c
clocksource/atlas7: Convert to hotplug state machine
2016-07-15 10:41:45 +02:00
timer-atmel-pit.c
clocksource/drivers/timer-atmel-pit: Enable mck clock
2016-08-26 15:55:58 +02:00
timer-atmel-st.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-digicolor.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-imx-gpt.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-integrator-ap.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-keystone.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-nps.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-oxnas-rps.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-prima2.c
clocksource/drivers/prima2: Remove useless header <asm/mach/time.h>
2016-06-28 10:22:11 +02:00
timer-sp.h
timer-sp804.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-stm32.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-sun5i.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-ti-32k.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
timer-u300.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
versatile.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
vf_pit_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
vt8500_timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00
zevio-timer.c
clocksources: Switch back to the clksrc table
2016-06-28 10:19:35 +02:00