[PATCH] init call cleanup
Trival patch for CPU hotplug. In CPU identify part, only did cleaup for intel CPUs. Need do for other CPUs if they support S3 SMP. Signed-off-by: Li Shaohua<shaohua.li@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
d720803a93
commit
0bb3184df5
@@ -24,9 +24,9 @@ EXPORT_PER_CPU_SYMBOL(cpu_gdt_table);
|
||||
DEFINE_PER_CPU(unsigned char, cpu_16bit_stack[CPU_16BIT_STACK_SIZE]);
|
||||
EXPORT_PER_CPU_SYMBOL(cpu_16bit_stack);
|
||||
|
||||
static int cachesize_override __initdata = -1;
|
||||
static int disable_x86_fxsr __initdata = 0;
|
||||
static int disable_x86_serial_nr __initdata = 1;
|
||||
static int cachesize_override __devinitdata = -1;
|
||||
static int disable_x86_fxsr __devinitdata = 0;
|
||||
static int disable_x86_serial_nr __devinitdata = 1;
|
||||
|
||||
struct cpu_dev * cpu_devs[X86_VENDOR_NUM] = {};
|
||||
|
||||
@@ -59,7 +59,7 @@ static int __init cachesize_setup(char *str)
|
||||
}
|
||||
__setup("cachesize=", cachesize_setup);
|
||||
|
||||
int __init get_model_name(struct cpuinfo_x86 *c)
|
||||
int __devinit get_model_name(struct cpuinfo_x86 *c)
|
||||
{
|
||||
unsigned int *v;
|
||||
char *p, *q;
|
||||
@@ -89,7 +89,7 @@ int __init get_model_name(struct cpuinfo_x86 *c)
|
||||
}
|
||||
|
||||
|
||||
void __init display_cacheinfo(struct cpuinfo_x86 *c)
|
||||
void __devinit display_cacheinfo(struct cpuinfo_x86 *c)
|
||||
{
|
||||
unsigned int n, dummy, ecx, edx, l2size;
|
||||
|
||||
@@ -130,7 +130,7 @@ void __init display_cacheinfo(struct cpuinfo_x86 *c)
|
||||
/* in particular, if CPUID levels 0x80000002..4 are supported, this isn't used */
|
||||
|
||||
/* Look up CPU names by table lookup. */
|
||||
static char __init *table_lookup_model(struct cpuinfo_x86 *c)
|
||||
static char __devinit *table_lookup_model(struct cpuinfo_x86 *c)
|
||||
{
|
||||
struct cpu_model_info *info;
|
||||
|
||||
@@ -151,7 +151,7 @@ static char __init *table_lookup_model(struct cpuinfo_x86 *c)
|
||||
}
|
||||
|
||||
|
||||
void __init get_cpu_vendor(struct cpuinfo_x86 *c, int early)
|
||||
void __devinit get_cpu_vendor(struct cpuinfo_x86 *c, int early)
|
||||
{
|
||||
char *v = c->x86_vendor_id;
|
||||
int i;
|
||||
@@ -202,7 +202,7 @@ static inline int flag_is_changeable_p(u32 flag)
|
||||
|
||||
|
||||
/* Probe for the CPUID instruction */
|
||||
static int __init have_cpuid_p(void)
|
||||
static int __devinit have_cpuid_p(void)
|
||||
{
|
||||
return flag_is_changeable_p(X86_EFLAGS_ID);
|
||||
}
|
||||
@@ -249,7 +249,7 @@ static void __init early_cpu_detect(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
void __init generic_identify(struct cpuinfo_x86 * c)
|
||||
void __devinit generic_identify(struct cpuinfo_x86 * c)
|
||||
{
|
||||
u32 tfms, xlvl;
|
||||
int junk;
|
||||
@@ -296,7 +296,7 @@ void __init generic_identify(struct cpuinfo_x86 * c)
|
||||
}
|
||||
}
|
||||
|
||||
static void __init squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
|
||||
static void __devinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
|
||||
{
|
||||
if (cpu_has(c, X86_FEATURE_PN) && disable_x86_serial_nr ) {
|
||||
/* Disable processor serial number */
|
||||
@@ -324,7 +324,7 @@ __setup("serialnumber", x86_serial_nr_setup);
|
||||
/*
|
||||
* This does the hard work of actually picking apart the CPU stuff...
|
||||
*/
|
||||
void __init identify_cpu(struct cpuinfo_x86 *c)
|
||||
void __devinit identify_cpu(struct cpuinfo_x86 *c)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -438,7 +438,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_HT
|
||||
void __init detect_ht(struct cpuinfo_x86 *c)
|
||||
void __devinit detect_ht(struct cpuinfo_x86 *c)
|
||||
{
|
||||
u32 eax, ebx, ecx, edx;
|
||||
int index_msb, tmp;
|
||||
@@ -493,7 +493,7 @@ void __init detect_ht(struct cpuinfo_x86 *c)
|
||||
}
|
||||
#endif
|
||||
|
||||
void __init print_cpu_info(struct cpuinfo_x86 *c)
|
||||
void __devinit print_cpu_info(struct cpuinfo_x86 *c)
|
||||
{
|
||||
char *vendor = NULL;
|
||||
|
||||
@@ -516,7 +516,7 @@ void __init print_cpu_info(struct cpuinfo_x86 *c)
|
||||
printk("\n");
|
||||
}
|
||||
|
||||
cpumask_t cpu_initialized __initdata = CPU_MASK_NONE;
|
||||
cpumask_t cpu_initialized __devinitdata = CPU_MASK_NONE;
|
||||
|
||||
/* This is hacky. :)
|
||||
* We're emulating future behavior.
|
||||
@@ -563,7 +563,7 @@ void __init early_cpu_init(void)
|
||||
* and IDT. We reload them nevertheless, this function acts as a
|
||||
* 'CPU state barrier', nothing should get across.
|
||||
*/
|
||||
void __init cpu_init (void)
|
||||
void __devinit cpu_init(void)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
struct tss_struct * t = &per_cpu(init_tss, cpu);
|
||||
|
Reference in New Issue
Block a user