aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/setup.c
diff options
context:
space:
mode:
authorAshok Raj <ashok.raj@intel.com>2005-06-25 17:54:58 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 19:24:30 -0400
commite6982c671c560da4a0bc5c908cbcbec12bd5991d (patch)
tree38e317c28afbde68d431ae139e9e943e5a818b06 /arch/x86_64/kernel/setup.c
parent52a119feaad92d44a0e97d01b22afbcbaf3fc079 (diff)
[PATCH] x86_64: Change init sections for CPU hotplug support
This patch adds __cpuinit and __cpuinitdata sections that need to exist past boot to support cpu hotplug. Caveat: This is done *only* for EM64T CPU Hotplug support, on request from Andi Kleen. Much of the generic hotplug code in kernel, and none of the other archs that support CPU hotplug today, i386, ia64, ppc64, s390 and parisc dont mark sections with __cpuinit, but only mark them as __devinit, and __devinitdata. If someone is motivated to change generic code, we need to make sure all existing hotplug code does not break, on other arch's that dont use __cpuinit, and __cpudevinit. Signed-off-by: Ashok Raj <ashok.raj@intel.com> Acked-by: Andi Kleen <ak@muc.de> Acked-by: Zwane Mwaikambo <zwane@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r--arch/x86_64/kernel/setup.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 000015dd5a8b..ca9a915a6d4a 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -676,7 +676,7 @@ void __init setup_arch(char **cmdline_p)
676#endif 676#endif
677} 677}
678 678
679static int __init get_model_name(struct cpuinfo_x86 *c) 679static int __cpuinit get_model_name(struct cpuinfo_x86 *c)
680{ 680{
681 unsigned int *v; 681 unsigned int *v;
682 682
@@ -692,7 +692,7 @@ static int __init get_model_name(struct cpuinfo_x86 *c)
692} 692}
693 693
694 694
695static void __init display_cacheinfo(struct cpuinfo_x86 *c) 695static void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c)
696{ 696{
697 unsigned int n, dummy, eax, ebx, ecx, edx; 697 unsigned int n, dummy, eax, ebx, ecx, edx;
698 698
@@ -803,7 +803,7 @@ static int __init init_amd(struct cpuinfo_x86 *c)
803 return r; 803 return r;
804} 804}
805 805
806static void __init detect_ht(struct cpuinfo_x86 *c) 806static void __cpuinit detect_ht(struct cpuinfo_x86 *c)
807{ 807{
808#ifdef CONFIG_SMP 808#ifdef CONFIG_SMP
809 u32 eax, ebx, ecx, edx; 809 u32 eax, ebx, ecx, edx;
@@ -864,7 +864,7 @@ static void __init detect_ht(struct cpuinfo_x86 *c)
864/* 864/*
865 * find out the number of processor cores on the die 865 * find out the number of processor cores on the die
866 */ 866 */
867static int __init intel_num_cpu_cores(struct cpuinfo_x86 *c) 867static int __cpuinit intel_num_cpu_cores(struct cpuinfo_x86 *c)
868{ 868{
869 unsigned int eax; 869 unsigned int eax;
870 870
@@ -882,7 +882,7 @@ static int __init intel_num_cpu_cores(struct cpuinfo_x86 *c)
882 return 1; 882 return 1;
883} 883}
884 884
885static void __init init_intel(struct cpuinfo_x86 *c) 885static void __cpuinit init_intel(struct cpuinfo_x86 *c)
886{ 886{
887 /* Cache sizes */ 887 /* Cache sizes */
888 unsigned n; 888 unsigned n;
@@ -902,7 +902,7 @@ static void __init init_intel(struct cpuinfo_x86 *c)
902 c->x86_num_cores = intel_num_cpu_cores(c); 902 c->x86_num_cores = intel_num_cpu_cores(c);
903} 903}
904 904
905void __init get_cpu_vendor(struct cpuinfo_x86 *c) 905void __cpuinit get_cpu_vendor(struct cpuinfo_x86 *c)
906{ 906{
907 char *v = c->x86_vendor_id; 907 char *v = c->x86_vendor_id;
908 908
@@ -923,7 +923,7 @@ struct cpu_model_info {
923/* Do some early cpuid on the boot CPU to get some parameter that are 923/* Do some early cpuid on the boot CPU to get some parameter that are
924 needed before check_bugs. Everything advanced is in identify_cpu 924 needed before check_bugs. Everything advanced is in identify_cpu
925 below. */ 925 below. */
926void __init early_identify_cpu(struct cpuinfo_x86 *c) 926void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c)
927{ 927{
928 u32 tfms; 928 u32 tfms;
929 929
@@ -977,7 +977,7 @@ void __init early_identify_cpu(struct cpuinfo_x86 *c)
977/* 977/*
978 * This does the hard work of actually picking apart the CPU stuff... 978 * This does the hard work of actually picking apart the CPU stuff...
979 */ 979 */
980void __init identify_cpu(struct cpuinfo_x86 *c) 980void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
981{ 981{
982 int i; 982 int i;
983 u32 xlvl; 983 u32 xlvl;
@@ -1054,7 +1054,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
1054} 1054}
1055 1055
1056 1056
1057void __init print_cpu_info(struct cpuinfo_x86 *c) 1057void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
1058{ 1058{
1059 if (c->x86_model_id[0]) 1059 if (c->x86_model_id[0])
1060 printk("%s", c->x86_model_id); 1060 printk("%s", c->x86_model_id);