diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-24 07:02:11 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-29 08:47:57 -0400 |
| commit | 25a5662a13e604d86b0a9fd71703582a7393d8ec (patch) | |
| tree | a7974715b7e08fff416fdf0300fdad19b45cd8bf /arch/arm/kernel | |
| parent | cf0d6b76c11b565f8d8b7d527d17b9f82eb3b3a5 (diff) | |
arm: Use generic show_interrupts()
Use the generic version and just keep the arch specific output.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/irq.c | 55 |
1 files changed, 5 insertions, 50 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 9b3a6d86e8c1..83bbad03fcc6 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
| @@ -51,63 +51,18 @@ | |||
| 51 | 51 | ||
| 52 | unsigned long irq_err_count; | 52 | unsigned long irq_err_count; |
| 53 | 53 | ||
| 54 | int show_interrupts(struct seq_file *p, void *v) | 54 | int arch_show_interrupts(struct seq_file *p, int prec) |
| 55 | { | 55 | { |
| 56 | int i = *(loff_t *) v, cpu; | ||
| 57 | struct irq_desc *desc; | ||
| 58 | struct irqaction * action; | ||
| 59 | unsigned long flags; | ||
| 60 | int prec, n; | ||
| 61 | |||
| 62 | for (prec = 3, n = 1000; prec < 10 && n <= nr_irqs; prec++) | ||
| 63 | n *= 10; | ||
| 64 | |||
| 65 | #ifdef CONFIG_SMP | ||
| 66 | if (prec < 4) | ||
| 67 | prec = 4; | ||
| 68 | #endif | ||
| 69 | |||
| 70 | if (i == 0) { | ||
| 71 | char cpuname[12]; | ||
| 72 | |||
| 73 | seq_printf(p, "%*s ", prec, ""); | ||
| 74 | for_each_present_cpu(cpu) { | ||
| 75 | sprintf(cpuname, "CPU%d", cpu); | ||
| 76 | seq_printf(p, " %10s", cpuname); | ||
| 77 | } | ||
| 78 | seq_putc(p, '\n'); | ||
| 79 | } | ||
| 80 | |||
| 81 | if (i < nr_irqs) { | ||
| 82 | desc = irq_to_desc(i); | ||
| 83 | raw_spin_lock_irqsave(&desc->lock, flags); | ||
| 84 | action = desc->action; | ||
| 85 | if (!action) | ||
| 86 | goto unlock; | ||
| 87 | |||
| 88 | seq_printf(p, "%*d: ", prec, i); | ||
| 89 | for_each_present_cpu(cpu) | ||
| 90 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); | ||
| 91 | seq_printf(p, " %10s", desc->irq_data.chip->name ? : "-"); | ||
| 92 | seq_printf(p, " %s", action->name); | ||
| 93 | for (action = action->next; action; action = action->next) | ||
| 94 | seq_printf(p, ", %s", action->name); | ||
| 95 | |||
| 96 | seq_putc(p, '\n'); | ||
| 97 | unlock: | ||
| 98 | raw_spin_unlock_irqrestore(&desc->lock, flags); | ||
| 99 | } else if (i == nr_irqs) { | ||
| 100 | #ifdef CONFIG_FIQ | 56 | #ifdef CONFIG_FIQ |
| 101 | show_fiq_list(p, prec); | 57 | show_fiq_list(p, prec); |
| 102 | #endif | 58 | #endif |
| 103 | #ifdef CONFIG_SMP | 59 | #ifdef CONFIG_SMP |
| 104 | show_ipi_list(p, prec); | 60 | show_ipi_list(p, prec); |
| 105 | #endif | 61 | #endif |
| 106 | #ifdef CONFIG_LOCAL_TIMERS | 62 | #ifdef CONFIG_LOCAL_TIMERS |
| 107 | show_local_irqs(p, prec); | 63 | show_local_irqs(p, prec); |
| 108 | #endif | 64 | #endif |
| 109 | seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count); | 65 | seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count); |
| 110 | } | ||
| 111 | return 0; | 66 | return 0; |
| 112 | } | 67 | } |
| 113 | 68 | ||
