提交 68bbc172 编写于 作者: M Magnus Damm 提交者: Andi Kleen

[PATCH] i386: remove redundant generic_identify() calls when identifying cpus

cpu_dev->c_identify is only called from arch/i386/common.c:identify_cpu(), and
this after generic_identify() already has been called. There is no need to call
this function twice and hook it in c_identify - but I may be wrong, please
double check before applying.

This patch also removes generic_identify() from cpu.h to avoid unnecessary
future nesting.
Signed-off-by: NMagnus Damm <magnus@valinux.co.jp>
Signed-off-by: NAndi Kleen <ak@suse.de>
上级 6ad91658
...@@ -275,7 +275,6 @@ static struct cpu_dev amd_cpu_dev __initdata = { ...@@ -275,7 +275,6 @@ static struct cpu_dev amd_cpu_dev __initdata = {
}, },
}, },
.c_init = init_amd, .c_init = init_amd,
.c_identify = generic_identify,
.c_size_cache = amd_size_cache, .c_size_cache = amd_size_cache,
}; };
......
...@@ -265,7 +265,7 @@ static void __init early_cpu_detect(void) ...@@ -265,7 +265,7 @@ static void __init early_cpu_detect(void)
} }
} }
void __cpuinit generic_identify(struct cpuinfo_x86 * c) static void __cpuinit generic_identify(struct cpuinfo_x86 * c)
{ {
u32 tfms, xlvl; u32 tfms, xlvl;
int ebx; int ebx;
......
...@@ -24,7 +24,5 @@ extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM]; ...@@ -24,7 +24,5 @@ extern struct cpu_dev * cpu_devs [X86_VENDOR_NUM];
extern int get_model_name(struct cpuinfo_x86 *c); extern int get_model_name(struct cpuinfo_x86 *c);
extern void display_cacheinfo(struct cpuinfo_x86 *c); extern void display_cacheinfo(struct cpuinfo_x86 *c);
extern void generic_identify(struct cpuinfo_x86 * c);
extern void early_intel_workaround(struct cpuinfo_x86 *c); extern void early_intel_workaround(struct cpuinfo_x86 *c);
...@@ -427,7 +427,6 @@ static void cyrix_identify(struct cpuinfo_x86 * c) ...@@ -427,7 +427,6 @@ static void cyrix_identify(struct cpuinfo_x86 * c)
local_irq_restore(flags); local_irq_restore(flags);
} }
} }
generic_identify(c);
} }
static struct cpu_dev cyrix_cpu_dev __initdata = { static struct cpu_dev cyrix_cpu_dev __initdata = {
...@@ -457,7 +456,6 @@ static struct cpu_dev nsc_cpu_dev __initdata = { ...@@ -457,7 +456,6 @@ static struct cpu_dev nsc_cpu_dev __initdata = {
.c_vendor = "NSC", .c_vendor = "NSC",
.c_ident = { "Geode by NSC" }, .c_ident = { "Geode by NSC" },
.c_init = init_nsc, .c_init = init_nsc,
.c_identify = generic_identify,
}; };
int __init nsc_init_cpu(void) int __init nsc_init_cpu(void)
......
...@@ -263,7 +263,6 @@ static struct cpu_dev intel_cpu_dev __cpuinitdata = { ...@@ -263,7 +263,6 @@ static struct cpu_dev intel_cpu_dev __cpuinitdata = {
}, },
}, },
.c_init = init_intel, .c_init = init_intel,
.c_identify = generic_identify,
.c_size_cache = intel_size_cache, .c_size_cache = intel_size_cache,
}; };
......
...@@ -38,7 +38,6 @@ static void __init nexgen_identify(struct cpuinfo_x86 * c) ...@@ -38,7 +38,6 @@ static void __init nexgen_identify(struct cpuinfo_x86 * c)
if ( deep_magic_nexgen_probe() ) { if ( deep_magic_nexgen_probe() ) {
strcpy(c->x86_vendor_id, "NexGenDriven"); strcpy(c->x86_vendor_id, "NexGenDriven");
} }
generic_identify(c);
} }
static struct cpu_dev nexgen_cpu_dev __initdata = { static struct cpu_dev nexgen_cpu_dev __initdata = {
......
...@@ -88,7 +88,6 @@ static void __init init_transmeta(struct cpuinfo_x86 *c) ...@@ -88,7 +88,6 @@ static void __init init_transmeta(struct cpuinfo_x86 *c)
static void __init transmeta_identify(struct cpuinfo_x86 * c) static void __init transmeta_identify(struct cpuinfo_x86 * c)
{ {
u32 xlvl; u32 xlvl;
generic_identify(c);
/* Transmeta-defined flags: level 0x80860001 */ /* Transmeta-defined flags: level 0x80860001 */
xlvl = cpuid_eax(0x80860000); xlvl = cpuid_eax(0x80860000);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册