aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r--arch/s390/kernel/time.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index f754a6dc4f94..9e7b039458da 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -15,6 +15,7 @@
15#define KMSG_COMPONENT "time" 15#define KMSG_COMPONENT "time"
16#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt 16#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
17 17
18#include <linux/kernel_stat.h>
18#include <linux/errno.h> 19#include <linux/errno.h>
19#include <linux/module.h> 20#include <linux/module.h>
20#include <linux/sched.h> 21#include <linux/sched.h>
@@ -37,6 +38,7 @@
37#include <linux/clocksource.h> 38#include <linux/clocksource.h>
38#include <linux/clockchips.h> 39#include <linux/clockchips.h>
39#include <linux/gfp.h> 40#include <linux/gfp.h>
41#include <linux/kprobes.h>
40#include <asm/uaccess.h> 42#include <asm/uaccess.h>
41#include <asm/delay.h> 43#include <asm/delay.h>
42#include <asm/s390_ext.h> 44#include <asm/s390_ext.h>
@@ -60,7 +62,7 @@ static DEFINE_PER_CPU(struct clock_event_device, comparators);
60/* 62/*
61 * Scheduler clock - returns current time in nanosec units. 63 * Scheduler clock - returns current time in nanosec units.
62 */ 64 */
63unsigned long long notrace sched_clock(void) 65unsigned long long notrace __kprobes sched_clock(void)
64{ 66{
65 return (get_clock_monotonic() * 125) >> 9; 67 return (get_clock_monotonic() * 125) >> 9;
66} 68}
@@ -159,6 +161,7 @@ static void clock_comparator_interrupt(unsigned int ext_int_code,
159 unsigned int param32, 161 unsigned int param32,
160 unsigned long param64) 162 unsigned long param64)
161{ 163{
164 kstat_cpu(smp_processor_id()).irqs[EXTINT_CLK]++;
162 if (S390_lowcore.clock_comparator == -1ULL) 165 if (S390_lowcore.clock_comparator == -1ULL)
163 set_clock_comparator(S390_lowcore.clock_comparator); 166 set_clock_comparator(S390_lowcore.clock_comparator);
164} 167}
@@ -169,6 +172,7 @@ static void stp_timing_alert(struct stp_irq_parm *);
169static void timing_alert_interrupt(unsigned int ext_int_code, 172static void timing_alert_interrupt(unsigned int ext_int_code,
170 unsigned int param32, unsigned long param64) 173 unsigned int param32, unsigned long param64)
171{ 174{
175 kstat_cpu(smp_processor_id()).irqs[EXTINT_TLA]++;
172 if (param32 & 0x00c40000) 176 if (param32 & 0x00c40000)
173 etr_timing_alert((struct etr_irq_parm *) &param32); 177 etr_timing_alert((struct etr_irq_parm *) &param32);
174 if (param32 & 0x00038000) 178 if (param32 & 0x00038000)