Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

blackfin:Use generic /proc/interrupts implementation

There is nothing special in that blackfin code. Use the core
implementation.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Steven Miao <realmz6@gmail.com>
Cc: bfin <adi-buildroot-devel@lists.sourceforge.net>

authored by

Thomas Gleixner and committed by
Steven Miao
e8fac633 30fc7ebe

+9 -29
+1
arch/blackfin/Kconfig
··· 34 34 select ARCH_WANT_IPC_PARSE_VERSION 35 35 select GENERIC_ATOMIC64 36 36 select GENERIC_IRQ_PROBE 37 + select GENERIC_IRQ_SHOW 37 38 select HAVE_NMI_WATCHDOG if NMI_WATCHDOG 38 39 select GENERIC_SMP_IDLE_THREAD 39 40 select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS
+8 -29
arch/blackfin/kernel/irqchip.c
··· 11 11 #include <linux/kallsyms.h> 12 12 #include <linux/interrupt.h> 13 13 #include <linux/irq.h> 14 + #include <linux/seq_file.h> 14 15 #include <asm/irq_handler.h> 15 16 #include <asm/trace.h> 16 17 #include <asm/pda.h> ··· 34 33 #endif 35 34 36 35 #ifdef CONFIG_PROC_FS 37 - int show_interrupts(struct seq_file *p, void *v) 36 + int arch_show_interrupts(struct seq_file *p, int prec) 38 37 { 39 - int i = *(loff_t *) v, j; 40 - struct irqaction *action; 41 - unsigned long flags; 38 + int j; 42 39 43 - if (i < NR_IRQS) { 44 - struct irq_desc *desc = irq_to_desc(i); 45 - 46 - raw_spin_lock_irqsave(&desc->lock, flags); 47 - action = desc->action; 48 - if (!action) 49 - goto skip; 50 - seq_printf(p, "%3d: ", i); 51 - for_each_online_cpu(j) 52 - seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); 53 - seq_printf(p, " %8s", irq_desc_get_chip(desc)->name); 54 - seq_printf(p, " %s", action->name); 55 - for (action = action->next; action; action = action->next) 56 - seq_printf(p, " %s", action->name); 57 - 58 - seq_putc(p, '\n'); 59 - skip: 60 - raw_spin_unlock_irqrestore(&desc->lock, flags); 61 - } else if (i == NR_IRQS) { 62 - seq_printf(p, "NMI: "); 63 - for_each_online_cpu(j) 64 - seq_printf(p, "%10u ", cpu_pda[j].__nmi_count); 65 - seq_printf(p, " CORE Non Maskable Interrupt\n"); 66 - seq_printf(p, "Err: %10u\n", atomic_read(&irq_err_count)); 67 - } 40 + seq_printf(p, "%*s: ", prec, "NMI"); 41 + for_each_online_cpu(j) 42 + seq_printf(p, "%10u ", cpu_pda[j].__nmi_count); 43 + seq_printf(p, " CORE Non Maskable Interrupt\n"); 44 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count)); 68 45 return 0; 69 46 } 70 47 #endif