summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/setup.c')
-rw-r--r--arch/i386/kernel/setup.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index ec5954771..f62744d11 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -247,7 +247,7 @@ static const char * i586model(unsigned int nr)
static const char * i686model(unsigned int nr)
{
static const char *model[] = {
- "PPro A-step", "Pentium Pro"
+ "PPro A-step", "Pentium Pro", "2", "Pentium II"
};
if (nr < sizeof(model)/sizeof(char *))
return model[nr];
@@ -279,9 +279,10 @@ static const char * getmodel(int x86, int model)
int get_cpuinfo(char * buffer)
{
int i, len = 0;
+ int sep_bug;
static const char *x86_cap_flags[] = {
"fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
- "cx8", "apic", "10", "11", "mtrr", "pge", "mca", "cmov",
+ "cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov",
"16", "17", "18", "19", "20", "21", "22", "mmx",
"24", "25", "26", "27", "28", "29", "30", "31"
};
@@ -321,10 +322,18 @@ int get_cpuinfo(char * buffer)
else
len += sprintf(buffer+len,
"stepping\t: unknown\n");
+
+ sep_bug = CD(have_cpuid) &&
+ (CD(x86_capability) & 0x800) &&
+ !memcmp(x86_vendor_id, "GenuineIntel", 12) &&
+ CD(x86) == 6 &&
+ CD(x86_model) < 3 &&
+ CD(x86_mask) < 3;
len += sprintf(buffer+len,
"fdiv_bug\t: %s\n"
"hlt_bug\t\t: %s\n"
+ "sep_bug\t\t: %s\n"
"fpu\t\t: %s\n"
"fpu_exception\t: %s\n"
"cpuid\t\t: %s\n"
@@ -332,6 +341,7 @@ int get_cpuinfo(char * buffer)
"flags\t\t:",
CD(fdiv_bug) ? "yes" : "no",
CD(hlt_works_ok) ? "no" : "yes",
+ sep_bug ? "yes" : "no",
CD(hard_math) ? "yes" : "no",
(CD(hard_math) && ignore_irq13)
? "yes" : "no",