diff options
Diffstat (limited to 'kernel/irq')
| -rw-r--r-- | kernel/irq/handle.c | 5 | ||||
| -rw-r--r-- | kernel/irq/migration.c | 4 | ||||
| -rw-r--r-- | kernel/irq/proc.c | 3 | ||||
| -rw-r--r-- | kernel/irq/spurious.c | 12 |
4 files changed, 14 insertions, 10 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 51df337b37db..0f6530117105 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c | |||
| @@ -76,10 +76,11 @@ irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs) | |||
| 76 | /* | 76 | /* |
| 77 | * Have got an event to handle: | 77 | * Have got an event to handle: |
| 78 | */ | 78 | */ |
| 79 | fastcall int handle_IRQ_event(unsigned int irq, struct pt_regs *regs, | 79 | fastcall irqreturn_t handle_IRQ_event(unsigned int irq, struct pt_regs *regs, |
| 80 | struct irqaction *action) | 80 | struct irqaction *action) |
| 81 | { | 81 | { |
| 82 | int ret, retval = 0, status = 0; | 82 | irqreturn_t ret, retval = IRQ_NONE; |
| 83 | unsigned int status = 0; | ||
| 83 | 84 | ||
| 84 | if (!(action->flags & SA_INTERRUPT)) | 85 | if (!(action->flags & SA_INTERRUPT)) |
| 85 | local_irq_enable(); | 86 | local_irq_enable(); |
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index 134f9f2e0e39..a12d00eb5e7c 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c | |||
| @@ -30,7 +30,7 @@ void move_native_irq(int irq) | |||
| 30 | 30 | ||
| 31 | desc->move_irq = 0; | 31 | desc->move_irq = 0; |
| 32 | 32 | ||
| 33 | if (likely(cpus_empty(pending_irq_cpumask[irq]))) | 33 | if (unlikely(cpus_empty(pending_irq_cpumask[irq]))) |
| 34 | return; | 34 | return; |
| 35 | 35 | ||
| 36 | if (!desc->handler->set_affinity) | 36 | if (!desc->handler->set_affinity) |
| @@ -49,7 +49,7 @@ void move_native_irq(int irq) | |||
| 49 | * cause some ioapics to mal-function. | 49 | * cause some ioapics to mal-function. |
| 50 | * Being paranoid i guess! | 50 | * Being paranoid i guess! |
| 51 | */ | 51 | */ |
| 52 | if (unlikely(!cpus_empty(tmp))) { | 52 | if (likely(!cpus_empty(tmp))) { |
| 53 | if (likely(!(desc->status & IRQ_DISABLED))) | 53 | if (likely(!(desc->status & IRQ_DISABLED))) |
| 54 | desc->handler->disable(irq); | 54 | desc->handler->disable(irq); |
| 55 | 55 | ||
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index d03b5eef8ce0..afacd6f585fa 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
| @@ -24,6 +24,8 @@ static struct proc_dir_entry *smp_affinity_entry[NR_IRQS]; | |||
| 24 | #ifdef CONFIG_GENERIC_PENDING_IRQ | 24 | #ifdef CONFIG_GENERIC_PENDING_IRQ |
| 25 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) | 25 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) |
| 26 | { | 26 | { |
| 27 | set_balance_irq_affinity(irq, mask_val); | ||
| 28 | |||
| 27 | /* | 29 | /* |
| 28 | * Save these away for later use. Re-progam when the | 30 | * Save these away for later use. Re-progam when the |
| 29 | * interrupt is pending | 31 | * interrupt is pending |
| @@ -33,6 +35,7 @@ void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) | |||
| 33 | #else | 35 | #else |
| 34 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) | 36 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) |
| 35 | { | 37 | { |
| 38 | set_balance_irq_affinity(irq, mask_val); | ||
| 36 | irq_affinity[irq] = mask_val; | 39 | irq_affinity[irq] = mask_val; |
| 37 | irq_desc[irq].handler->set_affinity(irq, mask_val); | 40 | irq_desc[irq].handler->set_affinity(irq, mask_val); |
| 38 | } | 41 | } |
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index 7df9abd5ec86..b2fb3c18d06b 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/kallsyms.h> | 11 | #include <linux/kallsyms.h> |
| 12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
| 13 | 13 | ||
| 14 | static int irqfixup; | 14 | static int irqfixup __read_mostly; |
| 15 | 15 | ||
| 16 | /* | 16 | /* |
| 17 | * Recovery handler for misrouted interrupts. | 17 | * Recovery handler for misrouted interrupts. |
| @@ -136,9 +136,9 @@ static void report_bad_irq(unsigned int irq, irq_desc_t *desc, irqreturn_t actio | |||
| 136 | void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret, | 136 | void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret, |
| 137 | struct pt_regs *regs) | 137 | struct pt_regs *regs) |
| 138 | { | 138 | { |
| 139 | if (action_ret != IRQ_HANDLED) { | 139 | if (unlikely(action_ret != IRQ_HANDLED)) { |
| 140 | desc->irqs_unhandled++; | 140 | desc->irqs_unhandled++; |
| 141 | if (action_ret != IRQ_NONE) | 141 | if (unlikely(action_ret != IRQ_NONE)) |
| 142 | report_bad_irq(irq, desc, action_ret); | 142 | report_bad_irq(irq, desc, action_ret); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| @@ -152,11 +152,11 @@ void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret, | |||
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | desc->irq_count++; | 154 | desc->irq_count++; |
| 155 | if (desc->irq_count < 100000) | 155 | if (likely(desc->irq_count < 100000)) |
| 156 | return; | 156 | return; |
| 157 | 157 | ||
| 158 | desc->irq_count = 0; | 158 | desc->irq_count = 0; |
| 159 | if (desc->irqs_unhandled > 99900) { | 159 | if (unlikely(desc->irqs_unhandled > 99900)) { |
| 160 | /* | 160 | /* |
| 161 | * The interrupt is stuck | 161 | * The interrupt is stuck |
| 162 | */ | 162 | */ |
| @@ -171,7 +171,7 @@ void note_interrupt(unsigned int irq, irq_desc_t *desc, irqreturn_t action_ret, | |||
| 171 | desc->irqs_unhandled = 0; | 171 | desc->irqs_unhandled = 0; |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | int noirqdebug; | 174 | int noirqdebug __read_mostly; |
| 175 | 175 | ||
| 176 | int __init noirqdebug_setup(char *str) | 176 | int __init noirqdebug_setup(char *str) |
| 177 | { | 177 | { |
