Zong Li
b3757ec3d9
clocksource: riscv: add notrace to riscv_sched_clock
commit 9d05c18e8d7de566ff68f221fcae65e78708dd1d upstream.
When enabling ftrace graph tracer, it gets the tracing clock in
ftrace_push_return_trace(). Eventually, it invokes riscv_sched_clock()
to get the clock value. If riscv_sched_clock() isn't marked with
'notrace', it will call ftrace_push_return_trace() and cause infinite
loop.
The result of failure as follow:
command: echo function_graph >current_tracer
[ 46.176787] Unable to handle kernel paging request at virtual address ffffffe04fb38c48
[ 46.177309] Oops [#1]
[ 46.177478] Modules linked in:
[ 46.177770] CPU: 0 PID: 256 Comm: $d Not tainted 5.5.0-rc1 #47
[ 46.177981] epc: ffffffe00035e59a ra : ffffffe00035e57e sp : ffffffe03a7569b0
[ 46.178216] gp : ffffffe000d29b90 tp : ffffffe03a756180 t0 : ffffffe03a756968
[ 46.178430] t1 : ffffffe00087f408 t2 : ffffffe03a7569a0 s0 : ffffffe03a7569f0
[ 46.178643] s1 : ffffffe00087f408 a0 : 0000000ac054cda4 a1 : 000000000087f411
[ 46.178856] a2 : 0000000ac054cda4 a3 : 0000000000373ca0 a4 : ffffffe04fb38c48
[ 46.179099] a5 : 00000000153e22a8 a6 : 00000000005522ff a7 : 0000000000000005
[ 46.179338] s2 : ffffffe03a756a90 s3 : ffffffe00032811c s4 : ffffffe03a756a58
[ 46.179570] s5 : ffffffe000d29fe0 s6 : 0000000000000001 s7 : 0000000000000003
[ 46.179809] s8 : 0000000000000003 s9 : 0000000000000002 s10: 0000000000000004
[ 46.180053] s11: 0000000000000000 t3 : 0000003fc815749c t4 : 00000000000efc90
[ 46.180293] t5 : ffffffe000d29658 t6 : 0000000000040000
[ 46.180482] status: 0000000000000100 badaddr: ffffffe04fb38c48 cause: 000000000000000f
Signed-off-by: Zong Li <zong.li@sifive.com>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
[paul.walmsley@sifive.com: cleaned up patch description]
Fixes: 92e0d143fd ("clocksource/drivers/riscv_timer: Provide the sched_clock")
Cc: stable@vger.kernel.org
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
2020-01-09 10:19:59 +01:00 |
| .. |
|
acpi_pm.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 243
|
2019-06-19 17:09:07 +02:00 |
|
arc_timer.c
|
Merge branch 'timers/vdso' into timers/core
|
2019-07-03 10:50:21 +02:00 |
|
arm_arch_timer.c
|
Merge branch 'timers/vdso' into timers/core
|
2019-07-03 10:50:21 +02:00 |
|
arm_global_timer.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
armv7m_systick.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
|
2019-05-30 11:29:22 -07:00 |
|
asm9260_timer.c
|
clocksource/drivers/asm9260: Add a check for of_clk_get
|
2020-01-04 19:17:07 +01:00 |
|
bcm2835_timer.c
|
|
|
|
bcm_kona_timer.c
|
|
|
|
clksrc-dbx500-prcmu.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197
|
2019-05-30 11:29:22 -07:00 |
|
clksrc_st_lpc.c
|
|
|
|
clps711x-timer.c
|
|
|
|
dummy_timer.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
dw_apb_timer.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
dw_apb_timer_of.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
|
2019-06-19 17:09:07 +02:00 |
|
em_sti.c
|
clocksource: Remove dev_err() usage after platform_get_irq()
|
2019-08-27 00:31:39 +02:00 |
|
exynos_mct.c
|
Merge branch 'timers/vdso' into timers/core
|
2019-07-03 10:50:21 +02:00 |
|
h8300_timer8.c
|
|
|
|
h8300_timer16.c
|
|
|
|
h8300_tpu.c
|
|
|
|
hyperv_timer.c
|
clocksource/drivers/hyperv: Enable TSC page clocksource on 32bit
|
2019-08-23 16:59:54 +02:00 |
|
i8253.c
|
|
|
|
ingenic-timer.c
|
clocksource: Add a new timer-ingenic driver
|
2019-08-08 15:30:08 -07:00 |
|
jcore-pit.c
|
|
|
|
Kconfig
|
Main MIPS changes for v5.4:
|
2019-09-22 09:30:30 -07:00 |
|
Makefile
|
clocksource: Add a new timer-ingenic driver
|
2019-08-08 15:30:08 -07:00 |
|
mips-gic-timer.c
|
|
|
|
mmio.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
mps2-timer.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
mxs_timer.c
|
|
|
|
nomadik-mtu.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
numachip.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
|
2019-06-05 17:36:37 +02:00 |
|
renesas-ostm.c
|
clocksource/drivers/renesas-ostm: Use DIV_ROUND_CLOSEST() helper
|
2019-08-27 00:31:39 +02:00 |
|
samsung_pwm_timer.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
scx200_hrt.c
|
|
|
|
sh_cmt.c
|
clocksource/drivers/sh_cmt: Document "cmt-48" as deprecated
|
2019-08-27 00:31:39 +02:00 |
|
sh_mtu2.c
|
clocksource/drivers/sh_mtu2: Do not loop using platform_get_irq_by_name()
|
2019-10-18 07:55:16 +02:00 |
|
sh_tmu.c
|
clocksource: Remove dev_err() usage after platform_get_irq()
|
2019-08-27 00:31:39 +02:00 |
|
timer-armada-370-xp.c
|
|
|
|
timer-atcpit100.c
|
|
|
|
timer-atlas7.c
|
|
|
|
timer-atmel-pit.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
timer-atmel-st.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
|
2019-05-30 11:26:35 -07:00 |
|
timer-atmel-tcb.c
|
clocksource/drivers/tcb_clksrc: Register delay timer
|
2019-08-27 00:31:39 +02:00 |
|
timer-cadence-ttc.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
|
2019-06-05 17:36:37 +02:00 |
|
timer-cs5535.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206
|
2019-05-30 11:29:53 -07:00 |
|
timer-davinci.c
|
clocksource/drivers/davinci: Add support for clocksource
|
2019-06-25 20:46:14 +02:00 |
|
timer-digicolor.c
|
|
|
|
timer-efm32.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
timer-fsl-ftm.c
|
|
|
|
timer-fttmr010.c
|
|
|
|
timer-gx6605s.c
|
|
|
|
timer-imx-gpt.c
|
|
|
|
timer-imx-sysctr.c
|
clocksource/drivers/imx-sysctr: Add internal clock divider handle
|
2019-08-27 00:31:39 +02:00 |
|
timer-imx-tpm.c
|
|
|
|
timer-integrator-ap.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
|
2019-05-30 11:26:35 -07:00 |
|
timer-ixp4xx.c
|
clocksource/drivers/ixp4xx: Implement delay timer
|
2019-06-25 19:49:18 +02:00 |
|
timer-keystone.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
timer-lpc32xx.c
|
|
|
|
timer-mediatek.c
|
clocksource/drivers/mediatek: Fix error handling
|
2019-10-16 17:04:50 +02:00 |
|
timer-meson6.c
|
clocksource/drivers/timer-meson6: Update with SPDX Licence identifier
|
2019-06-25 19:49:18 +02:00 |
|
timer-milbeaut.c
|
|
|
|
timer-mp-csky.c
|
|
|
|
timer-npcm7xx.c
|
clocksource/drivers/npcm: Fix GENMASK and timer operation
|
2019-08-27 00:31:39 +02:00 |
|
timer-nps.c
|
|
|
|
timer-of.c
|
clocksource/drivers/timer-of: Use unique device name instead of timer
|
2020-01-04 19:17:08 +01:00 |
|
timer-of.h
|
|
|
|
timer-orion.c
|
|
|
|
timer-owl.c
|
|
|
|
timer-oxnas-rps.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201
|
2019-05-30 11:29:52 -07:00 |
|
timer-pistachio.c
|
|
|
|
timer-prima2.c
|
|
|
|
timer-probe.c
|
clocksource/drivers: Do not warn on probe defer
|
2019-08-27 00:31:39 +02:00 |
|
timer-pxa.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
timer-qcom.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282
|
2019-06-05 17:36:37 +02:00 |
|
timer-rda.c
|
|
|
|
timer-riscv.c
|
clocksource: riscv: add notrace to riscv_sched_clock
|
2020-01-09 10:19:59 +01:00 |
|
timer-rockchip.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |
|
timer-sp.h
|
|
|
|
timer-sp804.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
|
2019-05-30 11:26:35 -07:00 |
|
timer-sprd.c
|
|
|
|
timer-stm32.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
|
2019-05-30 11:29:22 -07:00 |
|
timer-sun4i.c
|
clocksource: sun4i: Add missing compatibles
|
2019-08-27 00:31:39 +02:00 |
|
timer-sun5i.c
|
|
|
|
timer-tango-xtal.c
|
|
|
|
timer-tegra.c
|
clocksource/drivers/tegra: Set up maximum-ticks limit properly
|
2019-06-25 19:49:18 +02:00 |
|
timer-ti-32k.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 341
|
2019-06-05 17:37:07 +02:00 |
|
timer-ti-dm.c
|
|
|
|
timer-u300.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
|
2019-05-30 11:29:22 -07:00 |
|
timer-versatile.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
|
2019-05-30 11:26:41 -07:00 |
|
timer-vf-pit.c
|
|
|
|
timer-vt8500.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156
|
2019-05-30 11:26:35 -07:00 |
|
timer-zevio.c
|
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
|
2019-06-19 17:09:55 +02:00 |