Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[firefly-linux-kernel-4.4.55.git] / arch / s390 / kernel / irq.c
index e30b2dfa8ba00a4b83348bcaea7e7377d8b37fec..2429ecd68872cba797172855c898df868bfc4c8d 100644 (file)
@@ -202,31 +202,27 @@ 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, unsigned int ext_int_code,
+void __irq_entry do_extint(struct pt_regs *regs, struct ext_code ext_code,
                           unsigned int param32, unsigned long param64)
 {
        struct pt_regs *old_regs;
-       unsigned short code;
        struct ext_int_info *p;
        int index;
 
-       code = (unsigned short) ext_int_code;
        old_regs = set_irq_regs(regs);
-       s390_idle_check(regs, S390_lowcore.int_clock,
-                       S390_lowcore.async_enter_timer);
        irq_enter();
        if (S390_lowcore.int_clock >= S390_lowcore.clock_comparator)
                /* Serve timer interrupts first. */
                clock_comparator_work();
        kstat_cpu(smp_processor_id()).irqs[EXTERNAL_INTERRUPT]++;
-       if (code != 0x1004)
+       if (ext_code.code != 0x1004)
                __get_cpu_var(s390_idle).nohz_delay = 1;
 
-       index = ext_hash(code);
+       index = ext_hash(ext_code.code);
        rcu_read_lock();
        list_for_each_entry_rcu(p, &ext_int_hash[index], entry)
-               if (likely(p->code == code))
-                       p->handler(ext_int_code, param32, param64);
+               if (likely(p->code == ext_code.code))
+                       p->handler(ext_code, param32, param64);
        rcu_read_unlock();
        irq_exit();
        set_irq_regs(old_regs);