diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 12:44:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 12:44:55 -0400 |
commit | 4786b4ee22de6304e841b12ee22b849230d7fba3 (patch) | |
tree | 08793b8fbcd63204d5d3355ac755745adcfef170 /arch/ia64/mm/discontig.c | |
parent | 253ba4e79edc695b2925bd2ef34de06ff4d4070c (diff) | |
parent | 71b264f85ff50c14fe945ffff06ae0d5e9a9124e (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: (27 commits)
[IA64] kdump: Add crash_save_vmcoreinfo for INIT
[IA64] Fix NUMA configuration issue
[IA64] Itanium Spec updates
[IA64] Untangle sync_icache_dcache() page size determination
[IA64] arch/ia64/kernel/: use time_* macros
[IA64] remove redundant display of free swap space in show_mem()
[IA64] make IOMMU respect the segment boundary limits
[IA64] kprobes: kprobe-booster for ia64
[IA64] fix getpid and set_tid_address fast system calls for pid namespaces
[IA64] Replace explicit jiffies tests with time_* macros.
[IA64] use goto to jump out do/while_each_thread
[IA64] Fix unlock ordering in smp_callin
[IA64] pgd_offset() constfication.
[IA64] kdump: crash.c coding style fix
[IA64] kdump: add kdump_on_fatal_mca
[IA64] Minimize per_cpu reservations.
[IA64] Correct pernodesize calculation.
[IA64] Kernel parameter for max number of concurrent global TLB purges
[IA64] Multiple outstanding ptc.g instruction support
[IA64] Implement smp_call_function_mask for ia64
...
Diffstat (limited to 'arch/ia64/mm/discontig.c')
-rw-r--r-- | arch/ia64/mm/discontig.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index ee5e68b2af94..544dc420c65e 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -104,7 +104,7 @@ static int __meminit early_nr_cpus_node(int node) | |||
104 | { | 104 | { |
105 | int cpu, n = 0; | 105 | int cpu, n = 0; |
106 | 106 | ||
107 | for (cpu = 0; cpu < NR_CPUS; cpu++) | 107 | for_each_possible_early_cpu(cpu) |
108 | if (node == node_cpuid[cpu].nid) | 108 | if (node == node_cpuid[cpu].nid) |
109 | n++; | 109 | n++; |
110 | 110 | ||
@@ -124,6 +124,7 @@ static unsigned long __meminit compute_pernodesize(int node) | |||
124 | pernodesize += node * L1_CACHE_BYTES; | 124 | pernodesize += node * L1_CACHE_BYTES; |
125 | pernodesize += L1_CACHE_ALIGN(sizeof(pg_data_t)); | 125 | pernodesize += L1_CACHE_ALIGN(sizeof(pg_data_t)); |
126 | pernodesize += L1_CACHE_ALIGN(sizeof(struct ia64_node_data)); | 126 | pernodesize += L1_CACHE_ALIGN(sizeof(struct ia64_node_data)); |
127 | pernodesize += L1_CACHE_ALIGN(sizeof(pg_data_t)); | ||
127 | pernodesize = PAGE_ALIGN(pernodesize); | 128 | pernodesize = PAGE_ALIGN(pernodesize); |
128 | return pernodesize; | 129 | return pernodesize; |
129 | } | 130 | } |
@@ -142,7 +143,7 @@ static void *per_cpu_node_setup(void *cpu_data, int node) | |||
142 | #ifdef CONFIG_SMP | 143 | #ifdef CONFIG_SMP |
143 | int cpu; | 144 | int cpu; |
144 | 145 | ||
145 | for (cpu = 0; cpu < NR_CPUS; cpu++) { | 146 | for_each_possible_early_cpu(cpu) { |
146 | if (node == node_cpuid[cpu].nid) { | 147 | if (node == node_cpuid[cpu].nid) { |
147 | memcpy(__va(cpu_data), __phys_per_cpu_start, | 148 | memcpy(__va(cpu_data), __phys_per_cpu_start, |
148 | __per_cpu_end - __per_cpu_start); | 149 | __per_cpu_end - __per_cpu_start); |
@@ -345,7 +346,7 @@ static void __init initialize_pernode_data(void) | |||
345 | 346 | ||
346 | #ifdef CONFIG_SMP | 347 | #ifdef CONFIG_SMP |
347 | /* Set the node_data pointer for each per-cpu struct */ | 348 | /* Set the node_data pointer for each per-cpu struct */ |
348 | for (cpu = 0; cpu < NR_CPUS; cpu++) { | 349 | for_each_possible_early_cpu(cpu) { |
349 | node = node_cpuid[cpu].nid; | 350 | node = node_cpuid[cpu].nid; |
350 | per_cpu(cpu_info, cpu).node_data = mem_data[node].node_data; | 351 | per_cpu(cpu_info, cpu).node_data = mem_data[node].node_data; |
351 | } | 352 | } |
@@ -444,7 +445,7 @@ void __init find_memory(void) | |||
444 | mem_data[node].min_pfn = ~0UL; | 445 | mem_data[node].min_pfn = ~0UL; |
445 | } | 446 | } |
446 | 447 | ||
447 | efi_memmap_walk(register_active_ranges, NULL); | 448 | efi_memmap_walk(filter_memory, register_active_ranges); |
448 | 449 | ||
449 | /* | 450 | /* |
450 | * Initialize the boot memory maps in reverse order since that's | 451 | * Initialize the boot memory maps in reverse order since that's |
@@ -493,13 +494,9 @@ void __cpuinit *per_cpu_init(void) | |||
493 | int cpu; | 494 | int cpu; |
494 | static int first_time = 1; | 495 | static int first_time = 1; |
495 | 496 | ||
496 | |||
497 | if (smp_processor_id() != 0) | ||
498 | return __per_cpu_start + __per_cpu_offset[smp_processor_id()]; | ||
499 | |||
500 | if (first_time) { | 497 | if (first_time) { |
501 | first_time = 0; | 498 | first_time = 0; |
502 | for (cpu = 0; cpu < NR_CPUS; cpu++) | 499 | for_each_possible_early_cpu(cpu) |
503 | per_cpu(local_per_cpu_offset, cpu) = __per_cpu_offset[cpu]; | 500 | per_cpu(local_per_cpu_offset, cpu) = __per_cpu_offset[cpu]; |
504 | } | 501 | } |
505 | 502 | ||
@@ -522,8 +519,6 @@ void show_mem(void) | |||
522 | 519 | ||
523 | printk(KERN_INFO "Mem-info:\n"); | 520 | printk(KERN_INFO "Mem-info:\n"); |
524 | show_free_areas(); | 521 | show_free_areas(); |
525 | printk(KERN_INFO "Free swap: %6ldkB\n", | ||
526 | nr_swap_pages<<(PAGE_SHIFT-10)); | ||
527 | printk(KERN_INFO "Node memory in pages:\n"); | 522 | printk(KERN_INFO "Node memory in pages:\n"); |
528 | for_each_online_pgdat(pgdat) { | 523 | for_each_online_pgdat(pgdat) { |
529 | unsigned long present; | 524 | unsigned long present; |