diff options
Diffstat (limited to 'arch/s390/kernel/irq.c')
| -rw-r--r-- | arch/s390/kernel/irq.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 408e866ae548..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)  }  EXPORT_SYMBOL(unregister_external_interrupt); -void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code, -			   unsigned int param32, unsigned long param64) +void __irq_entry do_extint(struct pt_regs *regs)  { +	struct ext_code ext_code;  	struct pt_regs *old_regs;  	struct ext_int_info *p;  	int index; @@ -248,6 +248,7 @@ void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code,  		clock_comparator_work();  	}  	kstat_incr_irqs_this_cpu(EXTERNAL_INTERRUPT, NULL); +	ext_code = *(struct ext_code *) ®s->int_code;  	if (ext_code.code != 0x1004)  		__get_cpu_var(s390_idle).nohz_delay = 1; @@ -255,7 +256,8 @@ void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code,  	rcu_read_lock();  	list_for_each_entry_rcu(p, &ext_int_hash[index], entry)  		if (likely(p->code == ext_code.code)) -			p->handler(ext_code, param32, param64); +			p->handler(ext_code, regs->int_parm, +				   regs->int_parm_long);  	rcu_read_unlock();  	irq_exit();  	set_irq_regs(old_regs); @@ -312,6 +314,7 @@ void measurement_alert_subclass_unregister(void)  }  EXPORT_SYMBOL(measurement_alert_subclass_unregister); +#ifdef CONFIG_SMP  void synchronize_irq(unsigned int irq)  {  	/* @@ -320,6 +323,7 @@ void synchronize_irq(unsigned int irq)  	 */  }  EXPORT_SYMBOL_GPL(synchronize_irq); +#endif  #ifndef CONFIG_PCI  | 

