diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 11:49:25 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 11:49:25 -0500 |
commit | 7d14f145f839b5d0d221ea209b4998f93267e2ec (patch) | |
tree | 669d09ad53c9de9ef2e6cef06d256a811d509d65 /arch/ia64/kernel/setup.c | |
parent | 2e1ca21d46aaef95101723fa402f39d3a95aba59 (diff) | |
parent | 4129a953ad4db379d8e07b0dd2157998653a1325 (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] New IA64 core/thread detection patch
[IA64] Increase max node count on SN platforms
[IA64] Increase max node count on SN platforms
[IA64] Increase max node count on SN platforms
[IA64] Increase max node count on SN platforms
[IA64] Tollhouse HP: IA64 arch changes
[IA64] cleanup dig_irq_init
[IA64] MCA recovery: kernel context recovery table
IA64: Use early_parm to handle mvec_name and nomca
[IA64] move patchlist and machvec into init section
[IA64] add init declaration - nolwsys
[IA64] add init declaration - gate page functions
[IA64] add init declaration to memory initialization functions
[IA64] add init declaration to cpu initialization functions
[IA64] add __init declaration to mca functions
[IA64] Ignore disabled Local SAPIC Affinity Structure in SRAT
[IA64] sn_check_intr: use ia64_get_irr()
[IA64] fix ia64 is_hugepage_only_range
Diffstat (limited to 'arch/ia64/kernel/setup.c')
-rw-r--r-- | arch/ia64/kernel/setup.c | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 958c1508036f..eb388e271b2b 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -130,8 +130,8 @@ EXPORT_SYMBOL(ia64_max_iommu_merge_mask); | |||
130 | /* | 130 | /* |
131 | * We use a special marker for the end of memory and it uses the extra (+1) slot | 131 | * We use a special marker for the end of memory and it uses the extra (+1) slot |
132 | */ | 132 | */ |
133 | struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1]; | 133 | struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1] __initdata; |
134 | int num_rsvd_regions; | 134 | int num_rsvd_regions __initdata; |
135 | 135 | ||
136 | 136 | ||
137 | /* | 137 | /* |
@@ -140,7 +140,7 @@ int num_rsvd_regions; | |||
140 | * caller-specified function is called with the memory ranges that remain after filtering. | 140 | * caller-specified function is called with the memory ranges that remain after filtering. |
141 | * This routine does not assume the incoming segments are sorted. | 141 | * This routine does not assume the incoming segments are sorted. |
142 | */ | 142 | */ |
143 | int | 143 | int __init |
144 | filter_rsvd_memory (unsigned long start, unsigned long end, void *arg) | 144 | filter_rsvd_memory (unsigned long start, unsigned long end, void *arg) |
145 | { | 145 | { |
146 | unsigned long range_start, range_end, prev_start; | 146 | unsigned long range_start, range_end, prev_start; |
@@ -176,7 +176,7 @@ filter_rsvd_memory (unsigned long start, unsigned long end, void *arg) | |||
176 | return 0; | 176 | return 0; |
177 | } | 177 | } |
178 | 178 | ||
179 | static void | 179 | static void __init |
180 | sort_regions (struct rsvd_region *rsvd_region, int max) | 180 | sort_regions (struct rsvd_region *rsvd_region, int max) |
181 | { | 181 | { |
182 | int j; | 182 | int j; |
@@ -217,7 +217,7 @@ __initcall(register_memory); | |||
217 | * initrd, etc. There are currently %IA64_MAX_RSVD_REGIONS defined, | 217 | * initrd, etc. There are currently %IA64_MAX_RSVD_REGIONS defined, |
218 | * see include/asm-ia64/meminit.h if you need to define more. | 218 | * see include/asm-ia64/meminit.h if you need to define more. |
219 | */ | 219 | */ |
220 | void | 220 | void __init |
221 | reserve_memory (void) | 221 | reserve_memory (void) |
222 | { | 222 | { |
223 | int n = 0; | 223 | int n = 0; |
@@ -269,7 +269,7 @@ reserve_memory (void) | |||
269 | * Grab the initrd start and end from the boot parameter struct given us by | 269 | * Grab the initrd start and end from the boot parameter struct given us by |
270 | * the boot loader. | 270 | * the boot loader. |
271 | */ | 271 | */ |
272 | void | 272 | void __init |
273 | find_initrd (void) | 273 | find_initrd (void) |
274 | { | 274 | { |
275 | #ifdef CONFIG_BLK_DEV_INITRD | 275 | #ifdef CONFIG_BLK_DEV_INITRD |
@@ -361,7 +361,7 @@ mark_bsp_online (void) | |||
361 | } | 361 | } |
362 | 362 | ||
363 | #ifdef CONFIG_SMP | 363 | #ifdef CONFIG_SMP |
364 | static void | 364 | static void __init |
365 | check_for_logical_procs (void) | 365 | check_for_logical_procs (void) |
366 | { | 366 | { |
367 | pal_logical_to_physical_t info; | 367 | pal_logical_to_physical_t info; |
@@ -388,6 +388,14 @@ check_for_logical_procs (void) | |||
388 | } | 388 | } |
389 | #endif | 389 | #endif |
390 | 390 | ||
391 | static __initdata int nomca; | ||
392 | static __init int setup_nomca(char *s) | ||
393 | { | ||
394 | nomca = 1; | ||
395 | return 0; | ||
396 | } | ||
397 | early_param("nomca", setup_nomca); | ||
398 | |||
391 | void __init | 399 | void __init |
392 | setup_arch (char **cmdline_p) | 400 | setup_arch (char **cmdline_p) |
393 | { | 401 | { |
@@ -401,35 +409,15 @@ setup_arch (char **cmdline_p) | |||
401 | efi_init(); | 409 | efi_init(); |
402 | io_port_init(); | 410 | io_port_init(); |
403 | 411 | ||
412 | parse_early_param(); | ||
413 | |||
404 | #ifdef CONFIG_IA64_GENERIC | 414 | #ifdef CONFIG_IA64_GENERIC |
405 | { | 415 | machvec_init(NULL); |
406 | const char *mvec_name = strstr (*cmdline_p, "machvec="); | ||
407 | char str[64]; | ||
408 | |||
409 | if (mvec_name) { | ||
410 | const char *end; | ||
411 | size_t len; | ||
412 | |||
413 | mvec_name += 8; | ||
414 | end = strchr (mvec_name, ' '); | ||
415 | if (end) | ||
416 | len = end - mvec_name; | ||
417 | else | ||
418 | len = strlen (mvec_name); | ||
419 | len = min(len, sizeof (str) - 1); | ||
420 | strncpy (str, mvec_name, len); | ||
421 | str[len] = '\0'; | ||
422 | mvec_name = str; | ||
423 | } else | ||
424 | mvec_name = acpi_get_sysname(); | ||
425 | machvec_init(mvec_name); | ||
426 | } | ||
427 | #endif | 416 | #endif |
428 | 417 | ||
429 | if (early_console_setup(*cmdline_p) == 0) | 418 | if (early_console_setup(*cmdline_p) == 0) |
430 | mark_bsp_online(); | 419 | mark_bsp_online(); |
431 | 420 | ||
432 | parse_early_param(); | ||
433 | #ifdef CONFIG_ACPI | 421 | #ifdef CONFIG_ACPI |
434 | /* Initialize the ACPI boot-time table parser */ | 422 | /* Initialize the ACPI boot-time table parser */ |
435 | acpi_table_init(); | 423 | acpi_table_init(); |
@@ -492,7 +480,7 @@ setup_arch (char **cmdline_p) | |||
492 | #endif | 480 | #endif |
493 | 481 | ||
494 | /* enable IA-64 Machine Check Abort Handling unless disabled */ | 482 | /* enable IA-64 Machine Check Abort Handling unless disabled */ |
495 | if (!strstr(saved_command_line, "nomca")) | 483 | if (!nomca) |
496 | ia64_mca_init(); | 484 | ia64_mca_init(); |
497 | 485 | ||
498 | platform_setup(cmdline_p); | 486 | platform_setup(cmdline_p); |
@@ -622,7 +610,7 @@ struct seq_operations cpuinfo_op = { | |||
622 | .show = show_cpuinfo | 610 | .show = show_cpuinfo |
623 | }; | 611 | }; |
624 | 612 | ||
625 | void | 613 | static void __cpuinit |
626 | identify_cpu (struct cpuinfo_ia64 *c) | 614 | identify_cpu (struct cpuinfo_ia64 *c) |
627 | { | 615 | { |
628 | union { | 616 | union { |
@@ -699,7 +687,7 @@ setup_per_cpu_areas (void) | |||
699 | * In addition, the minimum of the i-cache stride sizes is calculated for | 687 | * In addition, the minimum of the i-cache stride sizes is calculated for |
700 | * "flush_icache_range()". | 688 | * "flush_icache_range()". |
701 | */ | 689 | */ |
702 | static void | 690 | static void __cpuinit |
703 | get_max_cacheline_size (void) | 691 | get_max_cacheline_size (void) |
704 | { | 692 | { |
705 | unsigned long line_size, max = 1; | 693 | unsigned long line_size, max = 1; |
@@ -762,10 +750,10 @@ get_max_cacheline_size (void) | |||
762 | * cpu_init() initializes state that is per-CPU. This function acts | 750 | * cpu_init() initializes state that is per-CPU. This function acts |
763 | * as a 'CPU state barrier', nothing should get across. | 751 | * as a 'CPU state barrier', nothing should get across. |
764 | */ | 752 | */ |
765 | void | 753 | void __cpuinit |
766 | cpu_init (void) | 754 | cpu_init (void) |
767 | { | 755 | { |
768 | extern void __devinit ia64_mmu_init (void *); | 756 | extern void __cpuinit ia64_mmu_init (void *); |
769 | unsigned long num_phys_stacked; | 757 | unsigned long num_phys_stacked; |
770 | pal_vm_info_2_u_t vmi; | 758 | pal_vm_info_2_u_t vmi; |
771 | unsigned int max_ctx; | 759 | unsigned int max_ctx; |
@@ -893,7 +881,7 @@ void sched_cacheflush(void) | |||
893 | ia64_sal_cache_flush(3); | 881 | ia64_sal_cache_flush(3); |
894 | } | 882 | } |
895 | 883 | ||
896 | void | 884 | void __init |
897 | check_bugs (void) | 885 | check_bugs (void) |
898 | { | 886 | { |
899 | ia64_patch_mckinley_e9((unsigned long) __start___mckinley_e9_bundles, | 887 | ia64_patch_mckinley_e9((unsigned long) __start___mckinley_e9_bundles, |