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 (ragnarat_private) 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
This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 14:32:43 PDT