diff options
-rw-r--r-- | arch/cris/Kconfig | 1 | ||||
-rw-r--r-- | arch/cris/arch-v10/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/cris/arch-v32/kernel/irq.c | 8 | ||||
-rw-r--r-- | arch/cris/kernel/irq.c | 39 | ||||
-rw-r--r-- | kernel/irq/manage.c | 2 | ||||
-rw-r--r-- | kernel/irq/proc.c | 3 |
6 files changed, 9 insertions, 46 deletions
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 0a7a4c11d8b1..4db5b46e1eff 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -56,6 +56,7 @@ config CRIS | |||
56 | select HAVE_IDE | 56 | select HAVE_IDE |
57 | select HAVE_GENERIC_HARDIRQS | 57 | select HAVE_GENERIC_HARDIRQS |
58 | select GENERIC_HARDIRQS_NO_DEPRECATED | 58 | select GENERIC_HARDIRQS_NO_DEPRECATED |
59 | select GENERIC_IRQ_SHOW | ||
59 | 60 | ||
60 | config HZ | 61 | config HZ |
61 | int | 62 | int |
diff --git a/arch/cris/arch-v10/kernel/irq.c b/arch/cris/arch-v10/kernel/irq.c index 7328a7cf7449..907cfb5a873d 100644 --- a/arch/cris/arch-v10/kernel/irq.c +++ b/arch/cris/arch-v10/kernel/irq.c | |||
@@ -199,7 +199,7 @@ init_IRQ(void) | |||
199 | 199 | ||
200 | /* Initialize IRQ handler descriptors. */ | 200 | /* Initialize IRQ handler descriptors. */ |
201 | for(i = 2; i < NR_IRQS; i++) { | 201 | for(i = 2; i < NR_IRQS; i++) { |
202 | set_irq_desc_and_handler(i, &crisv10_irq_type, | 202 | irq_set_chip_and_handler(i, &crisv10_irq_type, |
203 | handle_simple_irq); | 203 | handle_simple_irq); |
204 | set_int_vector(i, interrupt[i]); | 204 | set_int_vector(i, interrupt[i]); |
205 | } | 205 | } |
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c index 0ad9db5126c7..8023176e19b2 100644 --- a/arch/cris/arch-v32/kernel/irq.c +++ b/arch/cris/arch-v32/kernel/irq.c | |||
@@ -451,16 +451,16 @@ init_IRQ(void) | |||
451 | 451 | ||
452 | /* Point all IRQ's to bad handlers. */ | 452 | /* Point all IRQ's to bad handlers. */ |
453 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { | 453 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { |
454 | set_irq_chip_and_handler(j, &crisv32_irq_type, | 454 | irq_set_chip_and_handler(j, &crisv32_irq_type, |
455 | handle_simple_irq); | 455 | handle_simple_irq); |
456 | set_exception_vector(i, interrupt[j]); | 456 | set_exception_vector(i, interrupt[j]); |
457 | } | 457 | } |
458 | 458 | ||
459 | /* Mark Timer and IPI IRQs as CPU local */ | 459 | /* Mark Timer and IPI IRQs as CPU local */ |
460 | irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; | 460 | irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; |
461 | irq_desc[TIMER0_INTR_VECT].status |= IRQ_PER_CPU; | 461 | irq_set_status_flags(TIMER0_INTR_VECT, IRQ_PER_CPU); |
462 | irq_allocations[IPI_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; | 462 | irq_allocations[IPI_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED; |
463 | irq_desc[IPI_INTR_VECT].status |= IRQ_PER_CPU; | 463 | irq_set_status_flags(IPI_INTR_VECT, IRQ_PER_CPU); |
464 | 464 | ||
465 | set_exception_vector(0x00, nmi_interrupt); | 465 | set_exception_vector(0x00, nmi_interrupt); |
466 | set_exception_vector(0x30, multiple_interrupt); | 466 | set_exception_vector(0x30, multiple_interrupt); |
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c index c346952f06dc..788eb2248916 100644 --- a/arch/cris/kernel/irq.c +++ b/arch/cris/kernel/irq.c | |||
@@ -37,45 +37,6 @@ | |||
37 | 37 | ||
38 | #include <asm/io.h> | 38 | #include <asm/io.h> |
39 | 39 | ||
40 | int show_interrupts(struct seq_file *p, void *v) | ||
41 | { | ||
42 | int i = *(loff_t *) v, j; | ||
43 | struct irqaction * action; | ||
44 | unsigned long flags; | ||
45 | |||
46 | if (i == 0) { | ||
47 | seq_printf(p, " "); | ||
48 | for_each_online_cpu(j) | ||
49 | seq_printf(p, "CPU%d ",j); | ||
50 | seq_putc(p, '\n'); | ||
51 | } | ||
52 | |||
53 | if (i < NR_IRQS) { | ||
54 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); | ||
55 | action = irq_desc[i].action; | ||
56 | if (!action) | ||
57 | goto skip; | ||
58 | seq_printf(p, "%3d: ",i); | ||
59 | #ifndef CONFIG_SMP | ||
60 | seq_printf(p, "%10u ", kstat_irqs(i)); | ||
61 | #else | ||
62 | for_each_online_cpu(j) | ||
63 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); | ||
64 | #endif | ||
65 | seq_printf(p, " %14s", irq_desc[i].irq_data.chip->name); | ||
66 | seq_printf(p, " %s", action->name); | ||
67 | |||
68 | for (action=action->next; action; action = action->next) | ||
69 | seq_printf(p, ", %s", action->name); | ||
70 | |||
71 | seq_putc(p, '\n'); | ||
72 | skip: | ||
73 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); | ||
74 | } | ||
75 | return 0; | ||
76 | } | ||
77 | |||
78 | |||
79 | /* called by the assembler IRQ entry functions defined in irq.h | 40 | /* called by the assembler IRQ entry functions defined in irq.h |
80 | * to dispatch the interrupts to registered handlers | 41 | * to dispatch the interrupts to registered handlers |
81 | * interrupts are disabled upon entry - depending on if the | 42 | * interrupts are disabled upon entry - depending on if the |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index acd599a43bfb..0a2aa73e536c 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -1064,10 +1064,10 @@ mismatch: | |||
1064 | ret = -EBUSY; | 1064 | ret = -EBUSY; |
1065 | 1065 | ||
1066 | out_mask: | 1066 | out_mask: |
1067 | raw_spin_unlock_irqrestore(&desc->lock, flags); | ||
1067 | free_cpumask_var(mask); | 1068 | free_cpumask_var(mask); |
1068 | 1069 | ||
1069 | out_thread: | 1070 | out_thread: |
1070 | raw_spin_unlock_irqrestore(&desc->lock, flags); | ||
1071 | if (new->thread) { | 1071 | if (new->thread) { |
1072 | struct task_struct *t = new->thread; | 1072 | struct task_struct *t = new->thread; |
1073 | 1073 | ||
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index 4cc2e5ed0bec..760248de109d 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
@@ -405,7 +405,8 @@ int show_interrupts(struct seq_file *p, void *v) | |||
405 | for_each_online_cpu(j) | 405 | for_each_online_cpu(j) |
406 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); | 406 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); |
407 | seq_printf(p, " %8s", desc->irq_data.chip->name); | 407 | seq_printf(p, " %8s", desc->irq_data.chip->name); |
408 | seq_printf(p, "-%-8s", desc->name); | 408 | if (desc->name) |
409 | seq_printf(p, "-%-8s", desc->name); | ||
409 | 410 | ||
410 | if (action) { | 411 | if (action) { |
411 | seq_printf(p, " %s", action->name); | 412 | seq_printf(p, " %s", action->name); |