[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: Magnus Damm <magnus@valinux.co.jp> Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
@@ -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)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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];
|
|||||||
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)
|
|||||||
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 = {
|
|||||||
.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 = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
.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)
|
|||||||
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)
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user