When GENERIC_HARDIRQS_NO_DEPRECATED is selected, the 'chip' field of
the irq descriptor is absent. Fix up show_interrupts() to handle this
case.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
---
arch/mips/kernel/irq.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index 4f93db5..10f0b9c 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -99,9 +99,11 @@ int show_interrupts(struct seq_file *p, void *v)
}
if (i < NR_IRQS) {
+ struct irq_chip *chip;
raw_spin_lock_irqsave(&irq_desc[i].lock, flags);
action = irq_desc[i].action;
- if (!action)
+ chip = get_irq_chip(i);
+ if (!action || !chip)
goto skip;
seq_printf(p, "%3d: ", i);
#ifndef CONFIG_SMP
@@ -110,7 +112,7 @@ int show_interrupts(struct seq_file *p, void *v)
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));
#endif
- seq_printf(p, " %14s", irq_desc[i].chip->name);
+ seq_printf(p, " %14s", chip->name);
seq_printf(p, " %s", action->name);
for (action=action->next; action; action = action->next)
--
1.7.2.3
|