summaryrefslogtreecommitdiff
path: root/drivers/clocksource/timer-prima2.c
diff options
context:
space:
mode:
authorJisheng Zhang <jszhang@marvell.com>2015-10-20 16:02:37 +0800
committerDaniel Lezcano <daniel.lezcano@linaro.org>2015-10-27 01:33:50 +0100
commitcdc68ec01853baf3558c6d25f19c869add4a6888 (patch)
treed6ab66eda4a387d1c2cd8301c2754efaf1ff0037 /drivers/clocksource/timer-prima2.c
parentb8725dab66f0b2d57affb33a7f6ca094d9f1f8dd (diff)
downloadlwn-cdc68ec01853baf3558c6d25f19c869add4a6888.tar.gz
lwn-cdc68ec01853baf3558c6d25f19c869add4a6888.zip
clocksource/drivers/prima2: Prevent ftrace recursion
Currently prima2 timer can be used as a scheduler clock. We properly marked sirfsoc_read_sched_clock() as notrace but we then call another function sirfsoc_timer_read() that _wasn't_ notrace. Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. Fix this by adding notrace attribute to the sirfsoc_timer_read() function. Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Diffstat (limited to 'drivers/clocksource/timer-prima2.c')
-rw-r--r--drivers/clocksource/timer-prima2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clocksource/timer-prima2.c b/drivers/clocksource/timer-prima2.c
index 78de982cc640..2854c663e8b5 100644
--- a/drivers/clocksource/timer-prima2.c
+++ b/drivers/clocksource/timer-prima2.c
@@ -73,7 +73,7 @@ static irqreturn_t sirfsoc_timer_interrupt(int irq, void *dev_id)
}
/* read 64-bit timer counter */
-static cycle_t sirfsoc_timer_read(struct clocksource *cs)
+static cycle_t notrace sirfsoc_timer_read(struct clocksource *cs)
{
u64 cycles;