From: Ingo Molnar Cleanup: remove irq_desc_t use from the generic IRQ code, and mark it obsolete. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton --- include/linux/irq.h | 18 +++++++++++++----- kernel/irq/autoprobe.c | 6 +++--- kernel/irq/handle.c | 4 ++-- kernel/irq/manage.c | 6 +++--- kernel/irq/migration.c | 4 ++-- kernel/irq/spurious.c | 9 +++++---- 6 files changed, 28 insertions(+), 19 deletions(-) diff -puN include/linux/irq.h~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete include/linux/irq.h --- a/include/linux/irq.h~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/include/linux/irq.h @@ -68,7 +68,7 @@ typedef struct hw_interrupt_type hw_irq * * Pad this out to 32 bytes for cache and indexing reasons. */ -typedef struct irq_desc { +struct irq_desc { hw_irq_controller *chip; void *chip_data; struct irqaction *action; /* IRQ action list */ @@ -83,11 +83,19 @@ typedef struct irq_desc { #if defined(CONFIG_GENERIC_PENDING_IRQ) || defined(CONFIG_IRQBALANCE) unsigned int move_irq; /* Flag need to re-target intr dest*/ #endif -} ____cacheline_aligned irq_desc_t; +} ____cacheline_aligned; -extern irq_desc_t irq_desc [NR_IRQS]; +extern struct irq_desc irq_desc[NR_IRQS]; -#include /* the arch dependent stuff */ +/* + * Migration helpers for obsolete names, they will go away: + */ +typedef struct irq_desc irq_desc_t; + +/* + * Pick up the arch-dependent methods: + */ +#include extern int setup_irq(unsigned int irq, struct irqaction *new); extern void terminate_irqs(void); @@ -189,7 +197,7 @@ extern irqreturn_t handle_IRQ_event(unsi */ extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs); -extern void note_interrupt(unsigned int irq, irq_desc_t *desc, +extern void note_interrupt(unsigned int irq, struct irq_desc *desc, int action_ret, struct pt_regs *regs); extern int can_request_irq(unsigned int irq, unsigned long irqflags); diff -puN kernel/irq/autoprobe.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete kernel/irq/autoprobe.c --- a/kernel/irq/autoprobe.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/kernel/irq/autoprobe.c @@ -27,8 +27,8 @@ static DEFINE_MUTEX(probing_active); */ unsigned long probe_irq_on(void) { + struct irq_desc *desc; unsigned long mask; - irq_desc_t *desc; unsigned int i; mutex_lock(&probing_active); @@ -116,7 +116,7 @@ unsigned int probe_irq_mask(unsigned lon mask = 0; for (i = 0; i < NR_IRQS; i++) { - irq_desc_t *desc = irq_desc + i; + struct irq_desc *desc = irq_desc + i; unsigned int status; spin_lock_irq(&desc->lock); @@ -159,7 +159,7 @@ int probe_irq_off(unsigned long val) int i, irq_found = 0, nr_irqs = 0; for (i = 0; i < NR_IRQS; i++) { - irq_desc_t *desc = irq_desc + i; + struct irq_desc *desc = irq_desc + i; unsigned int status; spin_lock_irq(&desc->lock); diff -puN kernel/irq/handle.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete kernel/irq/handle.c --- a/kernel/irq/handle.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/kernel/irq/handle.c @@ -28,7 +28,7 @@ * * Controller mappings for all interrupt sources: */ -irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = { +struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned = { [0 ... NR_IRQS-1] = { .status = IRQ_DISABLED, .chip = &no_irq_type, @@ -110,7 +110,7 @@ irqreturn_t handle_IRQ_event(unsigned in */ fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs) { - irq_desc_t *desc = irq_desc + irq; + struct irq_desc *desc = irq_desc + irq; struct irqaction *action; unsigned int status; diff -puN kernel/irq/manage.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete kernel/irq/manage.c --- a/kernel/irq/manage.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/kernel/irq/manage.c @@ -57,7 +57,7 @@ EXPORT_SYMBOL(synchronize_irq); */ void disable_irq_nosync(unsigned int irq) { - irq_desc_t *desc = irq_desc + irq; + struct irq_desc *desc = irq_desc + irq; unsigned long flags; if (irq >= NR_IRQS) @@ -86,7 +86,7 @@ EXPORT_SYMBOL(disable_irq_nosync); */ void disable_irq(unsigned int irq) { - irq_desc_t *desc = irq_desc + irq; + struct irq_desc *desc = irq_desc + irq; if (irq >= NR_IRQS) return; @@ -109,7 +109,7 @@ EXPORT_SYMBOL(disable_irq); */ void enable_irq(unsigned int irq) { - irq_desc_t *desc = irq_desc + irq; + struct irq_desc *desc = irq_desc + irq; unsigned long flags; if (irq >= NR_IRQS) diff -puN kernel/irq/migration.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete kernel/irq/migration.c --- a/kernel/irq/migration.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/kernel/irq/migration.c @@ -3,7 +3,7 @@ void set_pending_irq(unsigned int irq, cpumask_t mask) { - irq_desc_t *desc = irq_desc + irq; + struct irq_desc *desc = irq_desc + irq; unsigned long flags; spin_lock_irqsave(&desc->lock, flags); @@ -14,8 +14,8 @@ void set_pending_irq(unsigned int irq, c void move_native_irq(int irq) { + struct irq_desc *desc = irq_desc + irq; cpumask_t tmp; - irq_desc_t *desc = irq_desc + irq; if (likely(!desc->move_irq)) return; diff -puN kernel/irq/spurious.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete kernel/irq/spurious.c --- a/kernel/irq/spurious.c~genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete +++ a/kernel/irq/spurious.c @@ -99,7 +99,8 @@ static int misrouted_irq(int irq, struct */ static void -__report_bad_irq(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret) +__report_bad_irq(unsigned int irq, struct irq_desc *desc, + irqreturn_t action_ret) { struct irqaction *action; @@ -124,7 +125,7 @@ __report_bad_irq(unsigned int irq, irq_d } static void -report_bad_irq(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret) +report_bad_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret) { static int count = 100; @@ -134,8 +135,8 @@ report_bad_irq(unsigned int irq, irq_des } } -void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret, - struct pt_regs *regs) +void note_interrupt(unsigned int irq, struct irq_desc *desc, + irqreturn_t action_ret, struct pt_regs *regs) { if (unlikely(action_ret != IRQ_HANDLED)) { desc->irqs_unhandled++; _