diff options
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r-- | arch/s390/kernel/time.c | 6 |
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 | */ |
63 | unsigned long long notrace sched_clock(void) | 65 | unsigned 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 *); | |||
169 | static void timing_alert_interrupt(unsigned int ext_int_code, | 172 | static 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 *) ¶m32); | 177 | etr_timing_alert((struct etr_irq_parm *) ¶m32); |
174 | if (param32 & 0x00038000) | 178 | if (param32 & 0x00038000) |