Skip to contentSkip to conversation

Use of CONFIG_M686

DISCUSSION J.A. Magallon 4 participants 5 messages May 27, 2002 – May 29, 2002

lore
Share & tools
lore
#0 lore raw

Hi all...

Grepping through the sources or the kernel in search of CONFIG_M686 occurences, there are some places where it looks like that flag is used as 'Anything bigger than a Pentium'. Now kernel has configs for PIII, P4, probably PII.

It is the f00f bug handling. Files:

arch/i386/kernel/traps.c:

#ifndef CONFIG_M686 <=================== which also passes if PII, P4... void __init trap_init_f00f_bug(void)
...

arch/i386/kernel/setup.c:

static void __init init_intel(struct cpuinfo_x86 *c) {

#ifndef CONFIG_M686 <=================== again
    static int f00f_workaround_enabled = 0;

...

So thats why I asked if we could use a CONFIG_MPENTIUMPRO, and make CONFIG_M686 a generic flag that is also defined for anything bigger than a Pentium (that looks like the current usage).

So:
Pentium -> M586

PPro    -> MPENTIUMPRO M686
PII     -> MPENTIUMII  M686
PIII    -> MPENTIUMIII M686
P4      -> MPENTIUM4   M686
Signature · 4 lines
J.A. Magallon                           #  Let the source be with you...        
mailto:[email protected]
Mandrake Linux release 8.3 (Cooker) for i586
Linux werewolf 2.4.19-pre8-jam4 #2 SMP dom may 26 11:20:42 CEST 2002 i686
#1 lore raw
Quoted 7 lines · On 2002.05.28 J.A. Magallon wrote:

Hi all...

arch/i386/kernel/traps.c:

#ifndef CONFIG_M686 <=================== which also passes if PII, P4... void __init trap_init_f00f_bug(void)
...

Would it be enough with

#if defined(CONFIG_M586) || defined(CONFIG_M586TSC) || defined(CONFIG_M586MMX)

386-486 do not have the bug, do ?

Signature · 4 lines
J.A. Magallon                           #  Let the source be with you...        
mailto:[email protected]
Mandrake Linux release 8.3 (Cooker) for i586
Linux werewolf 2.4.19-pre8-jam4 #2 SMP dom may 26 11:20:42 CEST 2002 i686
#2 lore raw
Quoted 10 lines · J.A. Magallon
Quoted 7 lines · On 2002.05.28 J.A. Magallon wrote:

Hi all...

arch/i386/kernel/traps.c:

#ifndef CONFIG_M686 <=================== which also passes if PII, P4... void __init trap_init_f00f_bug(void)
...

Quoted 5 lines

Would it be enough with

#if defined(CONFIG_M586) || defined(CONFIG_M586TSC) || defined(CONFIG_M586MMX)

386-486 do not have the bug, do ?

You misunderstand the intent. A 386 or 486 kernel will run on a Pentium and could therefore hit the error. A PPro kernel would die earlier anyway. Of course its long been PPRO|Athlon|... and the ifdef wanted updating. I'd ifdef it on CONFIG_X86_FOOF_BUG and put the FOOF thing into arch/i386/Config.in nicely with the other stuff

#3 lore raw
In reply to J.A. Magallon
Quoted 28 lines · J.A. Magallon

Hi all...

Grepping through the sources or the kernel in search of CONFIG_M686 occurences, there are some places where it looks like that flag is used as 'Anything bigger than a Pentium'. Now kernel has configs for PIII, P4, probably PII.

It is the f00f bug handling. Files:

arch/i386/kernel/traps.c:

#ifndef CONFIG_M686 <=================== which also passes if PII, P4... void __init trap_init_f00f_bug(void)
...

arch/i386/kernel/setup.c:

static void __init init_intel(struct cpuinfo_x86 *c) {

#ifndef CONFIG_M686 <=================== again
    static int f00f_workaround_enabled = 0;

...

So thats why I asked if we could use a CONFIG_MPENTIUMPRO, and make CONFIG_M686 a generic flag that is also defined for anything bigger than a Pentium (that looks like the current usage).

Quoted 8 lines

So:
Pentium -> M586

PPro    -> MPENTIUMPRO M686
PII     -> MPENTIUMII  M686
PIII    -> MPENTIUMIII M686
P4      -> MPENTIUM4   M686

I fixed that in 2.5 by introducing CONFIG_X86_F00F_BUG.

http://marc.theaimsgroup.com/?l=linux-kernel&m=101416800017102&w=4

Signature · 1 line
						Brian Gerst
#4 lore raw
In reply to J.A. Magallon
Quoted 5 lines · Alan Cox

You misunderstand the intent. A 386 or 486 kernel will run on a Pentium and could therefore hit the error. A PPro kernel would die earlier anyway. Of course its long been PPRO|Athlon|... and the ifdef wanted updating. I'd ifdef it on CONFIG_X86_FOOF_BUG and put the FOOF thing into arch/i386/Config.in nicely with the other stuff

Agreed. This is what's done in 2.5 btw.

Signature · 2 lines
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs