diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-01-01 00:42:26 +0100 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-01-01 00:42:26 +0100 |
commit | d036e67b40f52bdd95392390108defbac7e53837 (patch) | |
tree | 4a00537671036c955c98891af9f4729332b35c50 /kernel/irq/manage.c | |
parent | cpumask: convert kernel time functions (diff) | |
download | linux-d036e67b40f52bdd95392390108defbac7e53837.tar.xz linux-d036e67b40f52bdd95392390108defbac7e53837.zip |
cpumask: convert kernel/irq
Impact: Reduce stack usage, use new cpumask API. ALPHA mod!
Main change is that irq_default_affinity becomes a cpumask_var_t, so
treat it as a pointer (this effects alpha).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 61c4a9b62165..cd0cd8dcb345 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -16,8 +16,15 @@ #include "internals.h" #ifdef CONFIG_SMP +cpumask_var_t irq_default_affinity; -cpumask_t irq_default_affinity = CPU_MASK_ALL; +static int init_irq_default_affinity(void) +{ + alloc_cpumask_var(&irq_default_affinity, GFP_KERNEL); + cpumask_setall(irq_default_affinity); + return 0; +} +core_initcall(init_irq_default_affinity); /** * synchronize_irq - wait for pending IRQ handlers (on other CPUs) @@ -127,7 +134,7 @@ int do_irq_select_affinity(unsigned int irq, struct irq_desc *desc) desc->status &= ~IRQ_AFFINITY_SET; } - cpumask_and(&desc->affinity, cpu_online_mask, &irq_default_affinity); + cpumask_and(&desc->affinity, cpu_online_mask, irq_default_affinity); set_affinity: desc->chip->set_affinity(irq, &desc->affinity); |