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@xxxxxxxxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> --- 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