Re: Bug#464962: immediate crash on boot on TM5800

From: H. Peter Anvin
Date: Tue Feb 12 2008 - 16:47:18 EST


Thought some more about this, and since this probably means gcc will generate this for userspace code as well nowadays, tm5800 should probably be downgraded to a 586-class machine. Hence the Linux policy of promoting it to a 686-class machine for having CMOV is actually incorrect, it doesn't have all the userspace-visible features of a 686-class machine, lacking long NOP.

-hpa

diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c
index 200fb3f..e8b422c 100644
--- a/arch/x86/kernel/cpu/transmeta.c
+++ b/arch/x86/kernel/cpu/transmeta.c
@@ -76,13 +76,6 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c)
/* All Transmeta CPUs have a constant TSC */
set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);

- /* If we can run i686 user-space code, call us an i686 */
-#define USER686 ((1 << X86_FEATURE_TSC)|\
- (1 << X86_FEATURE_CX8)|\
- (1 << X86_FEATURE_CMOV))
- if (c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686)
- c->x86 = 6;
-
#ifdef CONFIG_SYSCTL
/* randomize_va_space slows us down enormously;
it probably triggers retranslation of x86->native bytecode */