diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-03 12:04:39 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-03 12:04:39 -0800 | 
| commit | 7d3b56ba37a95f1f370f50258ed3954c304c524b (patch) | |
| tree | 86102527b92f02450aa245f084ffb491c18d2e0a /arch/alpha | |
| parent | 269b012321f2f1f8e4648c43a93bf432b42c6668 (diff) | |
| parent | ab14398abd195af91a744c320a52a1bce814dd1e (diff) | |
| download | linux-7d3b56ba37a95f1f370f50258ed3954c304c524b.tar.bz2 | |
Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)
  x86: setup_per_cpu_areas() cleanup
  cpumask: fix compile error when CONFIG_NR_CPUS is not defined
  cpumask: use alloc_cpumask_var_node where appropriate
  cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t
  x86: use cpumask_var_t in acpi/boot.c
  x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids
  sched: put back some stack hog changes that were undone in kernel/sched.c
  x86: enable cpus display of kernel_max and offlined cpus
  ia64: cpumask fix for is_affinity_mask_valid()
  cpumask: convert RCU implementations, fix
  xtensa: define __fls
  mn10300: define __fls
  m32r: define __fls
  h8300: define __fls
  frv: define __fls
  cris: define __fls
  cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
  cpumask: zero extra bits in alloc_cpumask_var_node
  cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/
  cpumask: convert mm/
  ...
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)  	return node_cpu_mask;  } +extern struct cpumask node_to_cpumask_map[]; +/* FIXME: This is dumb, recalculating every time.  But simple. */ +static const struct cpumask *cpumask_of_node(int node) +{ +	int cpu; + +	cpumask_clear(&node_to_cpumask_map[node]); + +	for_each_online_cpu(cpu) { +		if (cpu_to_node(cpu) == node) +			cpumask_set_cpu(cpu, node_to_cpumask_map[node]); +	} + +	return &node_to_cpumask_map[node]; +} +  #define pcibus_to_cpumask(bus)	(cpu_online_map) +#define cpumask_of_pcibus(bus)	(cpu_online_mask)  #endif /* !CONFIG_NUMA */  # 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)  	if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq])  		return 1; -	while (!cpu_possible(cpu) || !cpu_isset(cpu, irq_default_affinity)) +	while (!cpu_possible(cpu) || +	       !cpumask_test_cpu(cpu, irq_default_affinity))  		cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);  	last_cpu = cpu; 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;  unsigned long alpha_verbose_mcheck = CONFIG_VERBOSE_MCHECK_ON;  #endif +#ifdef CONFIG_NUMA +struct cpumask node_to_cpumask_map[MAX_NUMNODES] __read_mostly; +EXPORT_SYMBOL(node_to_cpumask_map); +#endif +  /* Which processor we booted from.  */  int boot_cpuid; |