x86: make 64bit identify_cpu use cpu_dev v2
v2: fix early_panic on this config: http://redhat.com/~mingo/misc/config-Thu_Jun_19_14_22_37_CEST_2008.bad reason : struct cpu_vendor_dev size is 16, need to make table to be 16 byte alignment also print out the cpu supported... Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Cc: Dave Jones <davej@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -664,6 +664,25 @@ static void __cpuinit get_cpu_vendor(struct cpuinfo_x86 *c)
|
|||||||
c->x86_vendor = X86_VENDOR_UNKNOWN;
|
c->x86_vendor = X86_VENDOR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __init early_cpu_support_print(void)
|
||||||
|
{
|
||||||
|
int i,j;
|
||||||
|
struct cpu_dev *cpu_devx;
|
||||||
|
|
||||||
|
printk("KERNEL supported cpus:\n");
|
||||||
|
for (i = 0; i < X86_VENDOR_NUM; i++) {
|
||||||
|
cpu_devx = cpu_devs[i];
|
||||||
|
if (!cpu_devx)
|
||||||
|
continue;
|
||||||
|
for (j = 0; j < 2; j++) {
|
||||||
|
if (!cpu_devx->c_ident[j])
|
||||||
|
continue;
|
||||||
|
printk(" %s %s\n", cpu_devx->c_vendor,
|
||||||
|
cpu_devx->c_ident[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void __init early_cpu_init(void)
|
static void __init early_cpu_init(void)
|
||||||
{
|
{
|
||||||
struct cpu_vendor_dev *cvdev;
|
struct cpu_vendor_dev *cvdev;
|
||||||
@@ -672,6 +691,7 @@ static void __init early_cpu_init(void)
|
|||||||
cvdev < __x86cpuvendor_end ;
|
cvdev < __x86cpuvendor_end ;
|
||||||
cvdev++)
|
cvdev++)
|
||||||
cpu_devs[cvdev->vendor] = cvdev->cpu_dev;
|
cpu_devs[cvdev->vendor] = cvdev->cpu_dev;
|
||||||
|
early_cpu_support_print();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do some early cpuid on the boot CPU to get some parameter that are
|
/* Do some early cpuid on the boot CPU to get some parameter that are
|
||||||
|
@@ -177,6 +177,7 @@ SECTIONS
|
|||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
}
|
}
|
||||||
__con_initcall_end = .;
|
__con_initcall_end = .;
|
||||||
|
. = ALIGN(16);
|
||||||
__x86cpuvendor_start = .;
|
__x86cpuvendor_start = .;
|
||||||
.x86cpuvendor.init : AT(ADDR(.x86cpuvendor.init) - LOAD_OFFSET) {
|
.x86cpuvendor.init : AT(ADDR(.x86cpuvendor.init) - LOAD_OFFSET) {
|
||||||
*(.x86cpuvendor.init)
|
*(.x86cpuvendor.init)
|
||||||
|
Reference in New Issue
Block a user