* [patch 0/2] alpha: Final irq cleanups for .39
@ 2011-03-25 21:40 Thomas Gleixner
2011-03-25 21:40 ` [patch 1/2] alpha: Convert to new irq function names Thomas Gleixner
2011-03-25 21:40 ` [patch 2/2] alpha: Use generic show_interrupts() Thomas Gleixner
0 siblings, 2 replies; 3+ messages in thread
From: Thomas Gleixner @ 2011-03-25 21:40 UTC (permalink / raw)
To: Matt Turner; +Cc: linux-alpha
Matt,
this is a final conversion to the new irq namespace and switch to the
generic show_interrupts() implementation.
Thanks,
tglx
^ permalink raw reply [flat|nested] 3+ messages in thread
* [patch 1/2] alpha: Convert to new irq function names
2011-03-25 21:40 [patch 0/2] alpha: Final irq cleanups for .39 Thomas Gleixner
@ 2011-03-25 21:40 ` Thomas Gleixner
2011-03-25 21:40 ` [patch 2/2] alpha: Use generic show_interrupts() Thomas Gleixner
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2011-03-25 21:40 UTC (permalink / raw)
To: Matt Turner; +Cc: linux-alpha
[-- Attachment #1: alpha-namespace.patch --]
[-- Type: text/plain, Size: 13080 bytes --]
Scripted with coccinelle.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/alpha/kernel/irq.c | 2 +-
arch/alpha/kernel/irq_alpha.c | 2 +-
arch/alpha/kernel/irq_i8259.c | 2 +-
arch/alpha/kernel/irq_pyxis.c | 2 +-
arch/alpha/kernel/irq_srm.c | 2 +-
arch/alpha/kernel/sys_alcor.c | 2 +-
arch/alpha/kernel/sys_cabriolet.c | 4 ++--
arch/alpha/kernel/sys_dp264.c | 2 +-
arch/alpha/kernel/sys_eb64p.c | 2 +-
arch/alpha/kernel/sys_eiger.c | 2 +-
arch/alpha/kernel/sys_jensen.c | 10 +++++-----
arch/alpha/kernel/sys_marvel.c | 8 ++++----
arch/alpha/kernel/sys_mikasa.c | 3 ++-
arch/alpha/kernel/sys_noritake.c | 3 ++-
arch/alpha/kernel/sys_rawhide.c | 3 ++-
arch/alpha/kernel/sys_rx164.c | 2 +-
arch/alpha/kernel/sys_sable.c | 4 ++--
arch/alpha/kernel/sys_takara.c | 3 ++-
arch/alpha/kernel/sys_titan.c | 2 +-
arch/alpha/kernel/sys_wildfire.c | 12 ++++++------
20 files changed, 38 insertions(+), 34 deletions(-)
Index: linux-2.6-tip/arch/alpha/kernel/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq.c
+++ linux-2.6-tip/arch/alpha/kernel/irq.c
@@ -102,7 +102,7 @@ show_interrupts(struct seq_file *p, void
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
#endif
- seq_printf(p, " %14s", get_irq_desc_chip(desc)->name);
+ seq_printf(p, " %14s", irq_desc_get_chip(desc)->name);
seq_printf(p, " %c%s",
(action->flags & IRQF_DISABLED)?'+':' ',
action->name);
Index: linux-2.6-tip/arch/alpha/kernel/irq_alpha.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq_alpha.c
+++ linux-2.6-tip/arch/alpha/kernel/irq_alpha.c
@@ -228,7 +228,7 @@ struct irqaction timer_irqaction = {
void __init
init_rtc_irq(void)
{
- set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
+ irq_set_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
handle_simple_irq, "RTC");
setup_irq(RTC_IRQ, &timer_irqaction);
}
Index: linux-2.6-tip/arch/alpha/kernel/irq_i8259.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq_i8259.c
+++ linux-2.6-tip/arch/alpha/kernel/irq_i8259.c
@@ -92,7 +92,7 @@ init_i8259a_irqs(void)
outb(0xff, 0xA1); /* mask all of 8259A-2 */
for (i = 0; i < 16; i++) {
- set_irq_chip_and_handler(i, &i8259a_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &i8259a_irq_type, handle_level_irq);
}
setup_irq(2, &cascade);
Index: linux-2.6-tip/arch/alpha/kernel/irq_pyxis.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq_pyxis.c
+++ linux-2.6-tip/arch/alpha/kernel/irq_pyxis.c
@@ -102,7 +102,7 @@ init_pyxis_irqs(unsigned long ignore_mas
for (i = 16; i < 48; ++i) {
if ((ignore_mask >> i) & 1)
continue;
- set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/irq_srm.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq_srm.c
+++ linux-2.6-tip/arch/alpha/kernel/irq_srm.c
@@ -51,7 +51,7 @@ init_srm_irqs(long max, unsigned long ig
for (i = 16; i < max; ++i) {
if (i < 64 && ((ignore_mask >> i) & 1))
continue;
- set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &srm_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_alcor.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_alcor.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_alcor.c
@@ -125,7 +125,7 @@ alcor_init_irq(void)
on while IRQ probing. */
if (i >= 16+20 && i <= 16+30)
continue;
- set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
i8259a_irq_type.irq_ack = alcor_isa_mask_and_ack_irq;
Index: linux-2.6-tip/arch/alpha/kernel/sys_cabriolet.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_cabriolet.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_cabriolet.c
@@ -105,8 +105,8 @@ common_init_irq(void (*srm_dev_int)(unsi
outb(0xff, 0x806);
for (i = 16; i < 35; ++i) {
- set_irq_chip_and_handler(i, &cabriolet_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(i, &cabriolet_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_dp264.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_dp264.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_dp264.c
@@ -270,7 +270,7 @@ init_tsunami_irqs(struct irq_chip * ops,
{
long i;
for (i = imin; i <= imax; ++i) {
- set_irq_chip_and_handler(i, ops, handle_level_irq);
+ irq_set_chip_and_handler(i, ops, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_eb64p.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_eb64p.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_eb64p.c
@@ -118,7 +118,7 @@ eb64p_init_irq(void)
init_i8259a_irqs();
for (i = 16; i < 32; ++i) {
- set_irq_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &eb64p_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_eiger.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_eiger.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_eiger.c
@@ -138,7 +138,7 @@ eiger_init_irq(void)
init_i8259a_irqs();
for (i = 16; i < 128; ++i) {
- set_irq_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &eiger_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_jensen.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_jensen.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_jensen.c
@@ -171,11 +171,11 @@ jensen_init_irq(void)
{
init_i8259a_irqs();
- set_irq_chip_and_handler(1, &jensen_local_irq_type, handle_level_irq);
- set_irq_chip_and_handler(4, &jensen_local_irq_type, handle_level_irq);
- set_irq_chip_and_handler(3, &jensen_local_irq_type, handle_level_irq);
- set_irq_chip_and_handler(7, &jensen_local_irq_type, handle_level_irq);
- set_irq_chip_and_handler(9, &jensen_local_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(1, &jensen_local_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(4, &jensen_local_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(3, &jensen_local_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(7, &jensen_local_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(9, &jensen_local_irq_type, handle_level_irq);
common_init_isa_dma();
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_marvel.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_marvel.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_marvel.c
@@ -276,7 +276,7 @@ init_io7_irqs(struct io7 *io7,
/* Set up the lsi irqs. */
for (i = 0; i < 128; ++i) {
- set_irq_chip_and_handler(base + i, lsi_ops, handle_level_irq);
+ irq_set_chip_and_handler(base + i, lsi_ops, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
@@ -290,7 +290,7 @@ init_io7_irqs(struct io7 *io7,
/* Set up the msi irqs. */
for (i = 128; i < (128 + 512); ++i) {
- set_irq_chip_and_handler(base + i, msi_ops, handle_level_irq);
+ irq_set_chip_and_handler(base + i, msi_ops, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
@@ -308,8 +308,8 @@ marvel_init_irq(void)
/* Reserve the legacy irqs. */
for (i = 0; i < 16; ++i) {
- set_irq_chip_and_handler(i, &marvel_legacy_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(i, &marvel_legacy_irq_type,
+ handle_level_irq);
}
/* Init the io7 irqs. */
Index: linux-2.6-tip/arch/alpha/kernel/sys_mikasa.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_mikasa.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_mikasa.c
@@ -98,7 +98,8 @@ mikasa_init_irq(void)
mikasa_update_irq_hw(0);
for (i = 16; i < 32; ++i) {
- set_irq_chip_and_handler(i, &mikasa_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &mikasa_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_noritake.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_noritake.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_noritake.c
@@ -127,7 +127,8 @@ noritake_init_irq(void)
outw(0, 0x54c);
for (i = 16; i < 48; ++i) {
- set_irq_chip_and_handler(i, &noritake_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &noritake_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_rawhide.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_rawhide.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_rawhide.c
@@ -180,7 +180,8 @@ rawhide_init_irq(void)
}
for (i = 16; i < 128; ++i) {
- set_irq_chip_and_handler(i, &rawhide_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &rawhide_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_rx164.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_rx164.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_rx164.c
@@ -99,7 +99,7 @@ rx164_init_irq(void)
rx164_update_irq_hw(0);
for (i = 16; i < 40; ++i) {
- set_irq_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &rx164_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_sable.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_sable.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_sable.c
@@ -518,8 +518,8 @@ sable_lynx_init_irq(int nr_of_irqs)
long i;
for (i = 0; i < nr_of_irqs; ++i) {
- set_irq_chip_and_handler(i, &sable_lynx_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(i, &sable_lynx_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_takara.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_takara.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_takara.c
@@ -138,7 +138,8 @@ takara_init_irq(void)
takara_update_irq_hw(i, -1);
for (i = 16; i < 128; ++i) {
- set_irq_chip_and_handler(i, &takara_irq_type, handle_level_irq);
+ irq_set_chip_and_handler(i, &takara_irq_type,
+ handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_titan.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_titan.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_titan.c
@@ -179,7 +179,7 @@ init_titan_irqs(struct irq_chip * ops, i
{
long i;
for (i = imin; i <= imax; ++i) {
- set_irq_chip_and_handler(i, ops, handle_level_irq);
+ irq_set_chip_and_handler(i, ops, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
}
}
Index: linux-2.6-tip/arch/alpha/kernel/sys_wildfire.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/sys_wildfire.c
+++ linux-2.6-tip/arch/alpha/kernel/sys_wildfire.c
@@ -183,17 +183,17 @@ wildfire_init_irq_per_pca(int qbbno, int
for (i = 0; i < 16; ++i) {
if (i == 2)
continue;
- set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(i + irq_bias, &wildfire_irq_type,
+ handle_level_irq);
irq_set_status_flags(i + irq_bias, IRQ_LEVEL);
}
- set_irq_chip_and_handler(36+irq_bias, &wildfire_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(36 + irq_bias, &wildfire_irq_type,
+ handle_level_irq);
irq_set_status_flags(36 + irq_bias, IRQ_LEVEL);
for (i = 40; i < 64; ++i) {
- set_irq_chip_and_handler(i+irq_bias, &wildfire_irq_type,
- handle_level_irq);
+ irq_set_chip_and_handler(i + irq_bias, &wildfire_irq_type,
+ handle_level_irq);
irq_set_status_flags(i + irq_bias, IRQ_LEVEL);
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* [patch 2/2] alpha: Use generic show_interrupts()
2011-03-25 21:40 [patch 0/2] alpha: Final irq cleanups for .39 Thomas Gleixner
2011-03-25 21:40 ` [patch 1/2] alpha: Convert to new irq function names Thomas Gleixner
@ 2011-03-25 21:40 ` Thomas Gleixner
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2011-03-25 21:40 UTC (permalink / raw)
To: Matt Turner; +Cc: linux-alpha
[-- Attachment #1: alpha-show.patch --]
[-- Type: text/plain, Size: 3933 bytes --]
The only subtle difference is that alpha uses ACTUAL_NR_IRQS and
prints the IRQF_DISABLED flag.
Change the generic implementation to deal with ACTUAL_NR_IRQS if
defined.
The IRQF_DISABLED printing is pointless, as we nowadays run all
interrupts with irqs disabled.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/alpha/Kconfig | 1
arch/alpha/kernel/irq.c | 67 +++++++-----------------------------------------
kernel/irq/proc.c | 8 ++++-
3 files changed, 17 insertions(+), 59 deletions(-)
Index: linux-2.6-tip/arch/alpha/Kconfig
===================================================================
--- linux-2.6-tip.orig/arch/alpha/Kconfig
+++ linux-2.6-tip/arch/alpha/Kconfig
@@ -11,6 +11,7 @@ config ALPHA
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE
select AUTO_IRQ_AFFINITY if SMP
+ select GENERIC_IRQ_SHOW
select GENERIC_HARDIRQS_NO_DEPRECATED
help
The Alpha is a 64-bit general-purpose processor designed and
Index: linux-2.6-tip/arch/alpha/kernel/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/alpha/kernel/irq.c
+++ linux-2.6-tip/arch/alpha/kernel/irq.c
@@ -67,68 +67,21 @@ int irq_select_affinity(unsigned int irq
}
#endif /* CONFIG_SMP */
-int
-show_interrupts(struct seq_file *p, void *v)
+int arch_show_interrupts(struct seq_file *p, int prec)
{
int j;
- int irq = *(loff_t *) v;
- struct irqaction * action;
- struct irq_desc *desc;
- unsigned long flags;
#ifdef CONFIG_SMP
- if (irq == 0) {
- seq_puts(p, " ");
- for_each_online_cpu(j)
- seq_printf(p, "CPU%d ", j);
- seq_putc(p, '\n');
- }
-#endif
-
- if (irq < ACTUAL_NR_IRQS) {
- desc = irq_to_desc(irq);
-
- if (!desc)
- return 0;
-
- raw_spin_lock_irqsave(&desc->lock, flags);
- action = desc->action;
- if (!action)
- goto unlock;
- seq_printf(p, "%3d: ", irq);
-#ifndef CONFIG_SMP
- seq_printf(p, "%10u ", kstat_irqs(irq));
-#else
- for_each_online_cpu(j)
- seq_printf(p, "%10u ", kstat_irqs_cpu(irq, j));
-#endif
- seq_printf(p, " %14s", irq_desc_get_chip(desc)->name);
- seq_printf(p, " %c%s",
- (action->flags & IRQF_DISABLED)?'+':' ',
- action->name);
-
- for (action=action->next; action; action = action->next) {
- seq_printf(p, ", %c%s",
- (action->flags & IRQF_DISABLED)?'+':' ',
- action->name);
- }
-
- seq_putc(p, '\n');
-unlock:
- raw_spin_unlock_irqrestore(&desc->lock, flags);
- } else if (irq == ACTUAL_NR_IRQS) {
-#ifdef CONFIG_SMP
- seq_puts(p, "IPI: ");
- for_each_online_cpu(j)
- seq_printf(p, "%10lu ", cpu_data[j].ipi_count);
- seq_putc(p, '\n');
+ seq_puts(p, "IPI: ");
+ for_each_online_cpu(j)
+ seq_printf(p, "%10lu ", cpu_data[j].ipi_count);
+ seq_putc(p, '\n');
#endif
- seq_puts(p, "PMI: ");
- for_each_online_cpu(j)
- seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
- seq_puts(p, " Performance Monitoring\n");
- seq_printf(p, "ERR: %10lu\n", irq_err_count);
- }
+ seq_puts(p, "PMI: ");
+ for_each_online_cpu(j)
+ seq_printf(p, "%10lu ", per_cpu(irq_pmi_count, j));
+ seq_puts(p, " Performance Monitoring\n");
+ seq_printf(p, "ERR: %10lu\n", irq_err_count);
return 0;
}
Index: linux-2.6-tip/kernel/irq/proc.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/proc.c
+++ linux-2.6-tip/kernel/irq/proc.c
@@ -364,6 +364,10 @@ int __weak arch_show_interrupts(struct s
return 0;
}
+#ifndef ACTUAL_NR_IRQS
+# define ACTUAL_NR_IRQS nr_irqs
+#endif
+
int show_interrupts(struct seq_file *p, void *v)
{
static int prec;
@@ -373,10 +377,10 @@ int show_interrupts(struct seq_file *p,
struct irqaction *action;
struct irq_desc *desc;
- if (i > nr_irqs)
+ if (i > ACTUAL_NR_IRQS)
return 0;
- if (i == nr_irqs)
+ if (i == ACTUAL_NR_IRQS)
return arch_show_interrupts(p, prec);
/* print header and calculate the width of the first column */
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-03-25 21:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-25 21:40 [patch 0/2] alpha: Final irq cleanups for .39 Thomas Gleixner
2011-03-25 21:40 ` [patch 1/2] alpha: Convert to new irq function names Thomas Gleixner
2011-03-25 21:40 ` [patch 2/2] alpha: Use generic show_interrupts() Thomas Gleixner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).