diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 22:40:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 22:40:35 -0400 |
commit | 0310e437182568a9e0aa862f2a9d13908069df73 (patch) | |
tree | f89c072cbf26bc886ff3d1202545e0361ab7cf59 /arch/um | |
parent | 5f6fb45466b2273ffb91c9cf209f164f666c33b1 (diff) | |
parent | 53c39ce56d203d80ba8217a16bb024b25185fb7e (diff) |
Merge branch 'um-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'um-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
um: Select GENERIC_HARDIRQS_NO_DEPRECATED
um: Use proper accessors in show_interrupts()
um: Convert irq_chips to new functions
um: Remove stale irq_chip.end
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/Kconfig.common | 1 | ||||
-rw-r--r-- | arch/um/kernel/irq.c | 31 |
2 files changed, 16 insertions, 16 deletions
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common index e351e14b4339..1e78940218c0 100644 --- a/arch/um/Kconfig.common +++ b/arch/um/Kconfig.common | |||
@@ -7,6 +7,7 @@ config UML | |||
7 | bool | 7 | bool |
8 | default y | 8 | default y |
9 | select HAVE_GENERIC_HARDIRQS | 9 | select HAVE_GENERIC_HARDIRQS |
10 | select GENERIC_HARDIRQS_NO_DEPRECATED | ||
10 | 11 | ||
11 | config MMU | 12 | config MMU |
12 | bool | 13 | bool |
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index 3f0ac9e0c966..64cfea80cfe2 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
@@ -35,8 +35,10 @@ int show_interrupts(struct seq_file *p, void *v) | |||
35 | } | 35 | } |
36 | 36 | ||
37 | if (i < NR_IRQS) { | 37 | if (i < NR_IRQS) { |
38 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); | 38 | struct irq_desc *desc = irq_to_desc(i); |
39 | action = irq_desc[i].action; | 39 | |
40 | raw_spin_lock_irqsave(&desc->lock, flags); | ||
41 | action = desc->action; | ||
40 | if (!action) | 42 | if (!action) |
41 | goto skip; | 43 | goto skip; |
42 | seq_printf(p, "%3d: ",i); | 44 | seq_printf(p, "%3d: ",i); |
@@ -46,7 +48,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
46 | for_each_online_cpu(j) | 48 | for_each_online_cpu(j) |
47 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); | 49 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); |
48 | #endif | 50 | #endif |
49 | seq_printf(p, " %14s", irq_desc[i].chip->name); | 51 | seq_printf(p, " %14s", get_irq_desc_chip(desc)->name); |
50 | seq_printf(p, " %s", action->name); | 52 | seq_printf(p, " %s", action->name); |
51 | 53 | ||
52 | for (action=action->next; action; action = action->next) | 54 | for (action=action->next; action; action = action->next) |
@@ -54,7 +56,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
54 | 56 | ||
55 | seq_putc(p, '\n'); | 57 | seq_putc(p, '\n'); |
56 | skip: | 58 | skip: |
57 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); | 59 | raw_spin_unlock_irqrestore(&desc->lock, flags); |
58 | } else if (i == NR_IRQS) | 60 | } else if (i == NR_IRQS) |
59 | seq_putc(p, '\n'); | 61 | seq_putc(p, '\n'); |
60 | 62 | ||
@@ -360,10 +362,10 @@ EXPORT_SYMBOL(um_request_irq); | |||
360 | EXPORT_SYMBOL(reactivate_fd); | 362 | EXPORT_SYMBOL(reactivate_fd); |
361 | 363 | ||
362 | /* | 364 | /* |
363 | * irq_chip must define (startup || enable) && | 365 | * irq_chip must define at least enable/disable and ack when |
364 | * (shutdown || disable) && end | 366 | * the edge handler is used. |
365 | */ | 367 | */ |
366 | static void dummy(unsigned int irq) | 368 | static void dummy(struct irq_data *d) |
367 | { | 369 | { |
368 | } | 370 | } |
369 | 371 | ||
@@ -371,20 +373,17 @@ static void dummy(unsigned int irq) | |||
371 | static struct irq_chip normal_irq_type = { | 373 | static struct irq_chip normal_irq_type = { |
372 | .name = "SIGIO", | 374 | .name = "SIGIO", |
373 | .release = free_irq_by_irq_and_dev, | 375 | .release = free_irq_by_irq_and_dev, |
374 | .disable = dummy, | 376 | .irq_disable = dummy, |
375 | .enable = dummy, | 377 | .irq_enable = dummy, |
376 | .ack = dummy, | 378 | .irq_ack = dummy, |
377 | .end = dummy | ||
378 | }; | 379 | }; |
379 | 380 | ||
380 | static struct irq_chip SIGVTALRM_irq_type = { | 381 | static struct irq_chip SIGVTALRM_irq_type = { |
381 | .name = "SIGVTALRM", | 382 | .name = "SIGVTALRM", |
382 | .release = free_irq_by_irq_and_dev, | 383 | .release = free_irq_by_irq_and_dev, |
383 | .shutdown = dummy, /* never called */ | 384 | .irq_disable = dummy, |
384 | .disable = dummy, | 385 | .irq_enable = dummy, |
385 | .enable = dummy, | 386 | .irq_ack = dummy, |
386 | .ack = dummy, | ||
387 | .end = dummy | ||
388 | }; | 387 | }; |
389 | 388 | ||
390 | void __init init_IRQ(void) | 389 | void __init init_IRQ(void) |