Commit 0dcdbc97 authored by Jiang Liu's avatar Jiang Liu Committed by Thomas Gleixner

genirq: Remove the irq argument from note_interrupt()

Only required for the slow path. Retrieve it from irq descriptor if
necessary.

[ tglx: Split out from combo patch. Left [try_]misrouted_irq()
  	untouched as there is no win in the slow path ]
Signed-off-by: default avatarJiang 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>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Link: http://lkml.kernel.org/r/1433391238-19471-19-git-send-email-jiang.liu@linux.intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent c1e5bd8c
...@@ -487,8 +487,7 @@ extern int irq_chip_set_vcpu_affinity_parent(struct irq_data *data, ...@@ -487,8 +487,7 @@ extern int irq_chip_set_vcpu_affinity_parent(struct irq_data *data,
#endif #endif
/* Handling of unhandled and spurious interrupts: */ /* Handling of unhandled and spurious interrupts: */
extern void note_interrupt(unsigned int irq, struct irq_desc *desc, extern void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret);
irqreturn_t action_ret);
/* Enable/disable irq debugging output: */ /* Enable/disable irq debugging output: */
......
...@@ -328,7 +328,7 @@ void handle_nested_irq(unsigned int irq) ...@@ -328,7 +328,7 @@ void handle_nested_irq(unsigned int irq)
action_ret = action->thread_fn(action->irq, action->dev_id); action_ret = action->thread_fn(action->irq, action->dev_id);
if (!noirqdebug) if (!noirqdebug)
note_interrupt(irq, desc, action_ret); note_interrupt(desc, action_ret);
raw_spin_lock_irq(&desc->lock); raw_spin_lock_irq(&desc->lock);
irqd_clear(&desc->irq_data, IRQD_IRQ_INPROGRESS); irqd_clear(&desc->irq_data, IRQD_IRQ_INPROGRESS);
......
...@@ -176,7 +176,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action) ...@@ -176,7 +176,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
add_interrupt_randomness(irq, flags); add_interrupt_randomness(irq, flags);
if (!noirqdebug) if (!noirqdebug)
note_interrupt(irq, desc, retval); note_interrupt(desc, retval);
return retval; return retval;
} }
......
...@@ -270,9 +270,10 @@ try_misrouted_irq(unsigned int irq, struct irq_desc *desc, ...@@ -270,9 +270,10 @@ try_misrouted_irq(unsigned int irq, struct irq_desc *desc,
#define SPURIOUS_DEFERRED 0x80000000 #define SPURIOUS_DEFERRED 0x80000000
void note_interrupt(unsigned int irq, struct irq_desc *desc, void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)
irqreturn_t action_ret)
{ {
unsigned int irq;
if (desc->istate & IRQS_POLL_INPROGRESS || if (desc->istate & IRQS_POLL_INPROGRESS ||
irq_settings_is_polled(desc)) irq_settings_is_polled(desc))
return; return;
...@@ -396,6 +397,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, ...@@ -396,6 +397,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
desc->last_unhandled = jiffies; desc->last_unhandled = jiffies;
} }
irq = irq_desc_get_irq(desc);
if (unlikely(try_misrouted_irq(irq, desc, action_ret))) { if (unlikely(try_misrouted_irq(irq, desc, action_ret))) {
int ok = misrouted_irq(irq); int ok = misrouted_irq(irq);
if (action_ret == IRQ_NONE) if (action_ret == IRQ_NONE)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment