diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2010-10-25 10:10:38 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-10-25 10:10:19 -0400 |
commit | f6649a7e5a9ee99e9623878f4a5579cc2f6cdd51 (patch) | |
tree | 183438313c7593565980a1445f208e0ba30162cd /arch/s390/kernel/time.c | |
parent | 1e54622e0403891b10f2105663e0f9dd595a1f17 (diff) |
[S390] cleanup lowcore access from external interrupts
Read external interrupts parameters from the lowcore in the first
level interrupt handler in entry[64].S.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r-- | arch/s390/kernel/time.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 2896cac9c14a..f754a6dc4f94 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -155,7 +155,9 @@ void init_cpu_timer(void) | |||
155 | __ctl_set_bit(0, 4); | 155 | __ctl_set_bit(0, 4); |
156 | } | 156 | } |
157 | 157 | ||
158 | static void clock_comparator_interrupt(__u16 code) | 158 | static void clock_comparator_interrupt(unsigned int ext_int_code, |
159 | unsigned int param32, | ||
160 | unsigned long param64) | ||
159 | { | 161 | { |
160 | if (S390_lowcore.clock_comparator == -1ULL) | 162 | if (S390_lowcore.clock_comparator == -1ULL) |
161 | set_clock_comparator(S390_lowcore.clock_comparator); | 163 | set_clock_comparator(S390_lowcore.clock_comparator); |
@@ -164,14 +166,13 @@ static void clock_comparator_interrupt(__u16 code) | |||
164 | static void etr_timing_alert(struct etr_irq_parm *); | 166 | static void etr_timing_alert(struct etr_irq_parm *); |
165 | static void stp_timing_alert(struct stp_irq_parm *); | 167 | static void stp_timing_alert(struct stp_irq_parm *); |
166 | 168 | ||
167 | static void timing_alert_interrupt(__u16 code) | 169 | static void timing_alert_interrupt(unsigned int ext_int_code, |
170 | unsigned int param32, unsigned long param64) | ||
168 | { | 171 | { |
169 | if (S390_lowcore.ext_params & 0x00c40000) | 172 | if (param32 & 0x00c40000) |
170 | etr_timing_alert((struct etr_irq_parm *) | 173 | etr_timing_alert((struct etr_irq_parm *) ¶m32); |
171 | &S390_lowcore.ext_params); | 174 | if (param32 & 0x00038000) |
172 | if (S390_lowcore.ext_params & 0x00038000) | 175 | stp_timing_alert((struct stp_irq_parm *) ¶m32); |
173 | stp_timing_alert((struct stp_irq_parm *) | ||
174 | &S390_lowcore.ext_params); | ||
175 | } | 176 | } |
176 | 177 | ||
177 | static void etr_reset(void); | 178 | static void etr_reset(void); |