genirq: Remove the irq argument from check_irq_resend()
authorJiang Liu <jiang.liu@linux.intel.com>
Thu, 4 Jun 2015 04:13:27 +0000 (12:13 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 11 Jul 2015 21:14:24 +0000 (23:14 +0200)
It's only used in the software resend case and can be retrieved from
irq_desc if necessary.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Link: http://lkml.kernel.org/r/1433391238-19471-18-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/chip.c
kernel/irq/internals.h
kernel/irq/manage.c
kernel/irq/resend.c

index f3c3d55cd5a468b24c16af7d3f5240cf4b5056f1..0cfbd1506e35ff7830e20e5e822b894b9a4a701c 100644 (file)
@@ -187,7 +187,7 @@ int irq_startup(struct irq_desc *desc, bool resend)
                irq_enable(desc);
        }
        if (resend)
-               check_irq_resend(desc, desc->irq_data.irq);
+               check_irq_resend(desc);
        return ret;
 }
 
index 3e03824cdd3894ea41bddf721d4161505670d286..7054947e368e92ae0b9776c1a5ecae3adf6998a4 100644 (file)
@@ -90,7 +90,7 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *act
 irqreturn_t handle_irq_event(struct irq_desc *desc);
 
 /* Resending of interrupts :*/
-void check_irq_resend(struct irq_desc *desc, unsigned int irq);
+void check_irq_resend(struct irq_desc *desc);
 bool irq_wait_for_poll(struct irq_desc *desc);
 void __irq_wake_thread(struct irq_desc *desc, struct irqaction *action);
 
index f9744853b656976bc4fdc49e006464a08a7d5395..c2e835d19bca31cd14c0011ad15acf4a01dddcd1 100644 (file)
@@ -516,7 +516,7 @@ void __enable_irq(struct irq_desc *desc, unsigned int irq)
                /* Prevent probing on this irq: */
                irq_settings_set_noprobe(desc);
                irq_enable(desc);
-               check_irq_resend(desc, irq);
+               check_irq_resend(desc);
                /* fall-through */
        }
        default:
index 9065107f083e90e3fbd3c38f2fbc164d11ff2b3c..32fc47c2c622ccb1ef183985951d64b4b09d3267 100644 (file)
@@ -53,7 +53,7 @@ static DECLARE_TASKLET(resend_tasklet, resend_irqs, 0);
  *
  * Is called with interrupts disabled and desc->lock held.
  */
-void check_irq_resend(struct irq_desc *desc, unsigned int irq)
+void check_irq_resend(struct irq_desc *desc)
 {
        /*
         * We do not resend level type interrupts. Level type
@@ -74,6 +74,8 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq)
                if (!desc->irq_data.chip->irq_retrigger ||
                    !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) {
 #ifdef CONFIG_HARDIRQS_SW_RESEND
+                       unsigned int irq = irq_desc_get_irq(desc);
+
                        /*
                         * If the interrupt has a parent irq and runs
                         * in the thread context of the parent irq,