diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-01-12 17:47:08 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-01-12 17:47:08 -0500 |
| commit | 94bc2be31a01a3055ec94176e595dfe208e92d3b (patch) | |
| tree | ebfbe81c6718a6390bfa1b99c6d228237d818576 /kernel/irq | |
| parent | c32a0b689cb9cc160cfcd19735bbf50bb70c6ef4 (diff) | |
| parent | 58cba4650a7a414eabd2b40cc9d8e45fcdf192d9 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'kernel/irq')
| -rw-r--r-- | kernel/irq/manage.c | 2 | ||||
| -rw-r--r-- | kernel/irq/proc.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 81c49a4d679e..97d5559997d2 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
| @@ -366,6 +366,8 @@ int request_irq(unsigned int irq, | |||
| 366 | action->next = NULL; | 366 | action->next = NULL; |
| 367 | action->dev_id = dev_id; | 367 | action->dev_id = dev_id; |
| 368 | 368 | ||
| 369 | select_smp_affinity(irq); | ||
| 370 | |||
| 369 | retval = setup_irq(irq, action); | 371 | retval = setup_irq(irq, action); |
| 370 | if (retval) | 372 | if (retval) |
| 371 | kfree(action); | 373 | kfree(action); |
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index f26e534c6585..d03b5eef8ce0 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
| @@ -10,6 +10,8 @@ | |||
| 10 | #include <linux/proc_fs.h> | 10 | #include <linux/proc_fs.h> |
| 11 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
| 12 | 12 | ||
| 13 | #include "internals.h" | ||
| 14 | |||
| 13 | static struct proc_dir_entry *root_irq_dir, *irq_dir[NR_IRQS]; | 15 | static struct proc_dir_entry *root_irq_dir, *irq_dir[NR_IRQS]; |
| 14 | 16 | ||
| 15 | #ifdef CONFIG_SMP | 17 | #ifdef CONFIG_SMP |
| @@ -68,7 +70,9 @@ static int irq_affinity_write_proc(struct file *file, const char __user *buffer, | |||
| 68 | */ | 70 | */ |
| 69 | cpus_and(tmp, new_value, cpu_online_map); | 71 | cpus_and(tmp, new_value, cpu_online_map); |
| 70 | if (cpus_empty(tmp)) | 72 | if (cpus_empty(tmp)) |
| 71 | return -EINVAL; | 73 | /* Special case for empty set - allow the architecture |
| 74 | code to set default SMP affinity. */ | ||
| 75 | return select_smp_affinity(irq) ? -EINVAL : full_count; | ||
| 72 | 76 | ||
| 73 | proc_set_irq_affinity(irq, new_value); | 77 | proc_set_irq_affinity(irq, new_value); |
| 74 | 78 | ||
