diff options
Diffstat (limited to 'kernel/irq/proc.c')
| -rw-r--r-- | kernel/irq/proc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index 85d08daa6600..f26e534c6585 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
| @@ -19,12 +19,22 @@ static struct proc_dir_entry *root_irq_dir, *irq_dir[NR_IRQS]; | |||
| 19 | */ | 19 | */ |
| 20 | static struct proc_dir_entry *smp_affinity_entry[NR_IRQS]; | 20 | static struct proc_dir_entry *smp_affinity_entry[NR_IRQS]; |
| 21 | 21 | ||
| 22 | void __attribute__((weak)) | 22 | #ifdef CONFIG_GENERIC_PENDING_IRQ |
| 23 | proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) | 23 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) |
| 24 | { | ||
| 25 | /* | ||
| 26 | * Save these away for later use. Re-progam when the | ||
| 27 | * interrupt is pending | ||
| 28 | */ | ||
| 29 | set_pending_irq(irq, mask_val); | ||
| 30 | } | ||
| 31 | #else | ||
| 32 | void proc_set_irq_affinity(unsigned int irq, cpumask_t mask_val) | ||
| 24 | { | 33 | { |
| 25 | irq_affinity[irq] = mask_val; | 34 | irq_affinity[irq] = mask_val; |
| 26 | irq_desc[irq].handler->set_affinity(irq, mask_val); | 35 | irq_desc[irq].handler->set_affinity(irq, mask_val); |
| 27 | } | 36 | } |
| 37 | #endif | ||
| 28 | 38 | ||
| 29 | static int irq_affinity_read_proc(char *page, char **start, off_t off, | 39 | static int irq_affinity_read_proc(char *page, char **start, off_t off, |
| 30 | int count, int *eof, void *data) | 40 | int count, int *eof, void *data) |
