aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/irq.c')
-rw-r--r--arch/arm/kernel/irq.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index a591971dbf7b..c1269944cc59 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -56,11 +56,20 @@ int show_interrupts(struct seq_file *p, void *v)
56 struct irq_desc *desc; 56 struct irq_desc *desc;
57 struct irqaction * action; 57 struct irqaction * action;
58 unsigned long flags; 58 unsigned long flags;
59 int prec, n;
60
61 for (prec = 3, n = 1000; prec < 10 && n <= nr_irqs; prec++)
62 n *= 10;
63
64#ifdef CONFIG_SMP
65 if (prec < 4)
66 prec = 4;
67#endif
59 68
60 if (i == 0) { 69 if (i == 0) {
61 char cpuname[12]; 70 char cpuname[12];
62 71
63 seq_printf(p, " "); 72 seq_printf(p, "%*s ", prec, "");
64 for_each_present_cpu(cpu) { 73 for_each_present_cpu(cpu) {
65 sprintf(cpuname, "CPU%d", cpu); 74 sprintf(cpuname, "CPU%d", cpu);
66 seq_printf(p, " %10s", cpuname); 75 seq_printf(p, " %10s", cpuname);
@@ -75,7 +84,7 @@ int show_interrupts(struct seq_file *p, void *v)
75 if (!action) 84 if (!action)
76 goto unlock; 85 goto unlock;
77 86
78 seq_printf(p, "%3d: ", i); 87 seq_printf(p, "%*d: ", prec, i);
79 for_each_present_cpu(cpu) 88 for_each_present_cpu(cpu)
80 seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); 89 seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));
81 seq_printf(p, " %10s", desc->chip->name ? : "-"); 90 seq_printf(p, " %10s", desc->chip->name ? : "-");
@@ -88,13 +97,15 @@ unlock:
88 raw_spin_unlock_irqrestore(&desc->lock, flags); 97 raw_spin_unlock_irqrestore(&desc->lock, flags);
89 } else if (i == nr_irqs) { 98 } else if (i == nr_irqs) {
90#ifdef CONFIG_FIQ 99#ifdef CONFIG_FIQ
91 show_fiq_list(p, v); 100 show_fiq_list(p, prec);
92#endif 101#endif
93#ifdef CONFIG_SMP 102#ifdef CONFIG_SMP
94 show_ipi_list(p); 103 show_ipi_list(p, prec);
95 show_local_irqs(p); 104#endif
105#ifdef CONFIG_LOCAL_TIMERS
106 show_local_irqs(p, prec);
96#endif 107#endif
97 seq_printf(p, "Err: %10lu\n", irq_err_count); 108 seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
98 } 109 }
99 return 0; 110 return 0;
100} 111}