Skip to content

Commit

Permalink
genirq: Remove the irq argument from note_interrupt()
Browse files Browse the repository at this point in the history
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: Jiang Liu <[email protected]>
Cc: Konrad Rzeszutek Wilk <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Randy Dunlap <[email protected]>
Cc: Yinghai Lu <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Jason Cooper <[email protected]>
Cc: Kevin Cernekee <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
  • Loading branch information
Jiang Liu authored and KAGA-KOKO committed Jul 11, 2015
1 parent c1e5bd8 commit 0dcdbc9
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
3 changes: 1 addition & 2 deletions include/linux/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -487,8 +487,7 @@ extern int irq_chip_set_vcpu_affinity_parent(struct irq_data *data,
#endif

/* Handling of unhandled and spurious interrupts: */
extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
irqreturn_t action_ret);
extern void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret);


/* Enable/disable irq debugging output: */
Expand Down
2 changes: 1 addition & 1 deletion kernel/irq/chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ void handle_nested_irq(unsigned int irq)

action_ret = action->thread_fn(action->irq, action->dev_id);
if (!noirqdebug)
note_interrupt(irq, desc, action_ret);
note_interrupt(desc, action_ret);

raw_spin_lock_irq(&desc->lock);
irqd_clear(&desc->irq_data, IRQD_IRQ_INPROGRESS);
Expand Down
2 changes: 1 addition & 1 deletion kernel/irq/handle.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
add_interrupt_randomness(irq, flags);

if (!noirqdebug)
note_interrupt(irq, desc, retval);
note_interrupt(desc, retval);
return retval;
}

Expand Down
6 changes: 4 additions & 2 deletions kernel/irq/spurious.c
Original file line number Diff line number Diff line change
Expand Up @@ -270,9 +270,10 @@ try_misrouted_irq(unsigned int irq, struct irq_desc *desc,

#define SPURIOUS_DEFERRED 0x80000000

void note_interrupt(unsigned int irq, struct irq_desc *desc,
irqreturn_t action_ret)
void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)
{
unsigned int irq;

if (desc->istate & IRQS_POLL_INPROGRESS ||
irq_settings_is_polled(desc))
return;
Expand Down Expand Up @@ -396,6 +397,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
desc->last_unhandled = jiffies;
}

irq = irq_desc_get_irq(desc);
if (unlikely(try_misrouted_irq(irq, desc, action_ret))) {
int ok = misrouted_irq(irq);
if (action_ret == IRQ_NONE)
Expand Down

0 comments on commit 0dcdbc9

Please sign in to comment.