diff options
Diffstat (limited to 'arch/s390/kernel/irq.c')
-rw-r--r-- | arch/s390/kernel/irq.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index dd3c1994b8bd..54b0995514e8 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
@@ -234,9 +234,9 @@ int unregister_external_interrupt(u16 code, ext_int_handler_t handler) | |||
234 | } | 234 | } |
235 | EXPORT_SYMBOL(unregister_external_interrupt); | 235 | EXPORT_SYMBOL(unregister_external_interrupt); |
236 | 236 | ||
237 | void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code, | 237 | void __irq_entry do_extint(struct pt_regs *regs) |
238 | unsigned int param32, unsigned long param64) | ||
239 | { | 238 | { |
239 | struct ext_code ext_code; | ||
240 | struct pt_regs *old_regs; | 240 | struct pt_regs *old_regs; |
241 | struct ext_int_info *p; | 241 | struct ext_int_info *p; |
242 | int index; | 242 | int index; |
@@ -248,6 +248,7 @@ void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code, | |||
248 | clock_comparator_work(); | 248 | clock_comparator_work(); |
249 | } | 249 | } |
250 | kstat_incr_irqs_this_cpu(EXTERNAL_INTERRUPT, NULL); | 250 | kstat_incr_irqs_this_cpu(EXTERNAL_INTERRUPT, NULL); |
251 | ext_code = *(struct ext_code *) ®s->int_code; | ||
251 | if (ext_code.code != 0x1004) | 252 | if (ext_code.code != 0x1004) |
252 | __get_cpu_var(s390_idle).nohz_delay = 1; | 253 | __get_cpu_var(s390_idle).nohz_delay = 1; |
253 | 254 | ||
@@ -255,7 +256,8 @@ void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code, | |||
255 | rcu_read_lock(); | 256 | rcu_read_lock(); |
256 | list_for_each_entry_rcu(p, &ext_int_hash[index], entry) | 257 | list_for_each_entry_rcu(p, &ext_int_hash[index], entry) |
257 | if (likely(p->code == ext_code.code)) | 258 | if (likely(p->code == ext_code.code)) |
258 | p->handler(ext_code, param32, param64); | 259 | p->handler(ext_code, regs->int_parm, |
260 | regs->int_parm_long); | ||
259 | rcu_read_unlock(); | 261 | rcu_read_unlock(); |
260 | irq_exit(); | 262 | irq_exit(); |
261 | set_irq_regs(old_regs); | 263 | set_irq_regs(old_regs); |