diff options
| -rw-r--r-- | arch/mn10300/Kconfig | 1 | ||||
| -rw-r--r-- | arch/mn10300/kernel/irq.c | 68 |
2 files changed, 11 insertions, 58 deletions
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index d8ab97a73db2..a523c94fa698 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
| @@ -3,6 +3,7 @@ config MN10300 | |||
| 3 | select HAVE_OPROFILE | 3 | select HAVE_OPROFILE |
| 4 | select HAVE_GENERIC_HARDIRQS | 4 | select HAVE_GENERIC_HARDIRQS |
| 5 | select GENERIC_HARDIRQS_NO_DEPRECATED | 5 | select GENERIC_HARDIRQS_NO_DEPRECATED |
| 6 | select GENERIC_IRQ_SHOW | ||
| 6 | select HAVE_ARCH_TRACEHOOK | 7 | select HAVE_ARCH_TRACEHOOK |
| 7 | select HAVE_ARCH_KGDB | 8 | select HAVE_ARCH_KGDB |
| 8 | 9 | ||
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c index 8f9e272f2a39..86af0d7d0771 100644 --- a/arch/mn10300/kernel/irq.c +++ b/arch/mn10300/kernel/irq.c | |||
| @@ -335,68 +335,20 @@ asmlinkage void do_IRQ(void) | |||
| 335 | /* | 335 | /* |
| 336 | * Display interrupt management information through /proc/interrupts | 336 | * Display interrupt management information through /proc/interrupts |
| 337 | */ | 337 | */ |
| 338 | int show_interrupts(struct seq_file *p, void *v) | 338 | int arch_show_interrupts(struct seq_file *p, int prec) |
| 339 | { | 339 | { |
| 340 | int i = *(loff_t *) v, j, cpu; | ||
| 341 | struct irqaction *action; | ||
| 342 | unsigned long flags; | ||
| 343 | |||
| 344 | switch (i) { | ||
| 345 | /* display column title bar naming CPUs */ | ||
| 346 | case 0: | ||
| 347 | seq_printf(p, " "); | ||
| 348 | for (j = 0; j < NR_CPUS; j++) | ||
| 349 | if (cpu_online(j)) | ||
| 350 | seq_printf(p, "CPU%d ", j); | ||
| 351 | seq_putc(p, '\n'); | ||
| 352 | break; | ||
| 353 | |||
| 354 | /* display information rows, one per active CPU */ | ||
| 355 | case 1 ... NR_IRQS - 1: | ||
| 356 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); | ||
| 357 | |||
| 358 | action = irq_desc[i].action; | ||
| 359 | if (action) { | ||
| 360 | seq_printf(p, "%3d: ", i); | ||
| 361 | for_each_present_cpu(cpu) | ||
| 362 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); | ||
| 363 | |||
| 364 | if (i < NR_CPU_IRQS) | ||
| 365 | seq_printf(p, " %14s.%u", | ||
| 366 | irq_desc[i].irq_data.chip->name, | ||
| 367 | (GxICR(i) & GxICR_LEVEL) >> | ||
| 368 | GxICR_LEVEL_SHIFT); | ||
| 369 | else | ||
| 370 | seq_printf(p, " %14s", | ||
| 371 | irq_desc[i].irq_data.chip->name); | ||
| 372 | |||
| 373 | seq_printf(p, " %s", action->name); | ||
| 374 | |||
| 375 | for (action = action->next; | ||
| 376 | action; | ||
| 377 | action = action->next) | ||
| 378 | seq_printf(p, ", %s", action->name); | ||
| 379 | |||
| 380 | seq_putc(p, '\n'); | ||
| 381 | } | ||
| 382 | |||
| 383 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); | ||
| 384 | break; | ||
| 385 | |||
| 386 | /* polish off with NMI and error counters */ | ||
| 387 | case NR_IRQS: | ||
| 388 | #ifdef CONFIG_MN10300_WD_TIMER | 340 | #ifdef CONFIG_MN10300_WD_TIMER |
| 389 | seq_printf(p, "NMI: "); | 341 | int j; |
| 390 | for (j = 0; j < NR_CPUS; j++) | ||
| 391 | if (cpu_online(j)) | ||
| 392 | seq_printf(p, "%10u ", nmi_count(j)); | ||
| 393 | seq_putc(p, '\n'); | ||
| 394 | #endif | ||
| 395 | 342 | ||
| 396 | seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); | 343 | seq_printf(p, "%*s: ", prec, "NMI"); |
| 397 | break; | 344 | for (j = 0; j < NR_CPUS; j++) |
| 398 | } | 345 | if (cpu_online(j)) |
| 346 | seq_printf(p, "%10u ", nmi_count(j)); | ||
| 347 | seq_putc(p, '\n'); | ||
| 348 | #endif | ||
| 399 | 349 | ||
| 350 | seq_printf(p, "%*s: ", prec, "ERR"); | ||
| 351 | seq_printf(p, "%10u\n", atomic_read(&irq_err_count)); | ||
| 400 | return 0; | 352 | return 0; |
| 401 | } | 353 | } |
| 402 | 354 | ||
