diff -ur stock/linux-2.4.20-pre5/arch/i386/kernel/setup.c linux-2.4.20-pre5/arch/i386/kernel/setup.c --- stock/linux-2.4.20-pre5/arch/i386/kernel/setup.c Thu Sep 5 13:05:36 2002 +++ linux-2.4.20-pre5/arch/i386/kernel/setup.c Thu Sep 5 12:49:46 2002 @@ -2142,6 +2142,11 @@ wrmsr(0x80860004, ~0, uk); c->x86_capability[0] = cpuid_edx(0x00000001); wrmsr(0x80860004, cap_mask, uk); + + /* If we can run i686 user-space code, call us an i686 */ +#define USER686 (X86_FEATURE_TSC|X86_FEATURE_CX8|X86_FEATURE_CMOV) + if ( c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686 ) + c->x86 = 6; }