diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 20:46:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 20:46:47 -0400 |
commit | 9dda696f0de87a2e5cfabb147e28c76b7d3c6846 (patch) | |
tree | 862a9fa39ce2d33156b815e1f7352038287579bf /arch | |
parent | c5617b200ac52e35f7e8cf05a17b0a2d50f6b3e9 (diff) | |
parent | 4ec37de89d8c758ee8115e0e64b3f994910789ee (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
[IA64] Fix build breakage
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 4 | ||||
-rw-r--r-- | arch/ia64/mm/numa.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 518e876a410d..6a1380e90f87 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -390,11 +390,13 @@ smp_callin (void) | |||
390 | 390 | ||
391 | fix_b0_for_bsp(); | 391 | fix_b0_for_bsp(); |
392 | 392 | ||
393 | #ifdef CONFIG_NUMA | ||
393 | /* | 394 | /* |
394 | * numa_node_id() works after this. | 395 | * numa_node_id() works after this. |
395 | */ | 396 | */ |
396 | set_numa_node(cpu_to_node_map[cpuid]); | 397 | set_numa_node(cpu_to_node_map[cpuid]); |
397 | set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); | 398 | set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); |
399 | #endif | ||
398 | 400 | ||
399 | ipi_call_lock_irq(); | 401 | ipi_call_lock_irq(); |
400 | spin_lock(&vector_lock); | 402 | spin_lock(&vector_lock); |
@@ -638,7 +640,9 @@ void __devinit smp_prepare_boot_cpu(void) | |||
638 | { | 640 | { |
639 | cpu_set(smp_processor_id(), cpu_online_map); | 641 | cpu_set(smp_processor_id(), cpu_online_map); |
640 | cpu_set(smp_processor_id(), cpu_callin_map); | 642 | cpu_set(smp_processor_id(), cpu_callin_map); |
643 | #ifdef CONFIG_NUMA | ||
641 | set_numa_node(cpu_to_node_map[smp_processor_id()]); | 644 | set_numa_node(cpu_to_node_map[smp_processor_id()]); |
645 | #endif | ||
642 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; | 646 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; |
643 | paravirt_post_smp_prepare_boot_cpu(); | 647 | paravirt_post_smp_prepare_boot_cpu(); |
644 | } | 648 | } |
diff --git a/arch/ia64/mm/numa.c b/arch/ia64/mm/numa.c index 3efea7d0a351..2437718bd6b1 100644 --- a/arch/ia64/mm/numa.c +++ b/arch/ia64/mm/numa.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/bootmem.h> | 18 | #include <linux/bootmem.h> |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/random.h> | ||
20 | #include <asm/mmzone.h> | 21 | #include <asm/mmzone.h> |
21 | #include <asm/numa.h> | 22 | #include <asm/numa.h> |
22 | 23 | ||
@@ -50,6 +51,22 @@ paddr_to_nid(unsigned long paddr) | |||
50 | return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0); | 51 | return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0); |
51 | } | 52 | } |
52 | 53 | ||
54 | /* | ||
55 | * Return the bit number of a random bit set in the nodemask. | ||
56 | * (returns -1 if nodemask is empty) | ||
57 | */ | ||
58 | int __node_random(const nodemask_t *maskp) | ||
59 | { | ||
60 | int w, bit = -1; | ||
61 | |||
62 | w = nodes_weight(*maskp); | ||
63 | if (w) | ||
64 | bit = bitmap_ord_to_pos(maskp->bits, | ||
65 | get_random_int() % w, MAX_NUMNODES); | ||
66 | return bit; | ||
67 | } | ||
68 | EXPORT_SYMBOL(__node_random); | ||
69 | |||
53 | #if defined(CONFIG_SPARSEMEM) && defined(CONFIG_NUMA) | 70 | #if defined(CONFIG_SPARSEMEM) && defined(CONFIG_NUMA) |
54 | /* | 71 | /* |
55 | * Because of holes evaluate on section limits. | 72 | * Because of holes evaluate on section limits. |