diff options
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/include/asm/topology.h | 17 | ||||
-rw-r--r-- | arch/alpha/kernel/irq.c | 3 | ||||
-rw-r--r-- | arch/alpha/kernel/setup.c | 5 |
3 files changed, 24 insertions, 1 deletions
diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index 149532e162c4..b4f284c72ff3 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h | |||
@@ -39,7 +39,24 @@ static inline cpumask_t node_to_cpumask(int node) | |||
39 | return node_cpu_mask; | 39 | return node_cpu_mask; |
40 | } | 40 | } |
41 | 41 | ||
42 | extern struct cpumask node_to_cpumask_map[]; | ||
43 | /* FIXME: This is dumb, recalculating every time. But simple. */ | ||
44 | static const struct cpumask *cpumask_of_node(int node) | ||
45 | { | ||
46 | int cpu; | ||
47 | |||
48 | cpumask_clear(&node_to_cpumask_map[node]); | ||
49 | |||
50 | for_each_online_cpu(cpu) { | ||
51 | if (cpu_to_node(cpu) == node) | ||
52 | cpumask_set_cpu(cpu, node_to_cpumask_map[node]); | ||
53 | } | ||
54 | |||
55 | return &node_to_cpumask_map[node]; | ||
56 | } | ||
57 | |||
42 | #define pcibus_to_cpumask(bus) (cpu_online_map) | 58 | #define pcibus_to_cpumask(bus) (cpu_online_map) |
59 | #define cpumask_of_pcibus(bus) (cpu_online_mask) | ||
43 | 60 | ||
44 | #endif /* !CONFIG_NUMA */ | 61 | #endif /* !CONFIG_NUMA */ |
45 | # include <asm-generic/topology.h> | 62 | # include <asm-generic/topology.h> |
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index d0f1620007f7..703731accda6 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c | |||
@@ -50,7 +50,8 @@ int irq_select_affinity(unsigned int irq) | |||
50 | if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq]) | 50 | if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq]) |
51 | return 1; | 51 | return 1; |
52 | 52 | ||
53 | while (!cpu_possible(cpu) || !cpu_isset(cpu, irq_default_affinity)) | 53 | while (!cpu_possible(cpu) || |
54 | !cpumask_test_cpu(cpu, irq_default_affinity)) | ||
54 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); | 55 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); |
55 | last_cpu = cpu; | 56 | last_cpu = cpu; |
56 | 57 | ||
diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c index a449e999027c..02bee6983ce2 100644 --- a/arch/alpha/kernel/setup.c +++ b/arch/alpha/kernel/setup.c | |||
@@ -79,6 +79,11 @@ int alpha_l3_cacheshape; | |||
79 | unsigned long alpha_verbose_mcheck = CONFIG_VERBOSE_MCHECK_ON; | 79 | unsigned long alpha_verbose_mcheck = CONFIG_VERBOSE_MCHECK_ON; |
80 | #endif | 80 | #endif |
81 | 81 | ||
82 | #ifdef CONFIG_NUMA | ||
83 | struct cpumask node_to_cpumask_map[MAX_NUMNODES] __read_mostly; | ||
84 | EXPORT_SYMBOL(node_to_cpumask_map); | ||
85 | #endif | ||
86 | |||
82 | /* Which processor we booted from. */ | 87 | /* Which processor we booted from. */ |
83 | int boot_cpuid; | 88 | int boot_cpuid; |
84 | 89 | ||