lkml.org 
[lkml]   [1999]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectThis Old Box (or errors building 2.0.38 on a K5)
Dudes and/or Dudettes:

Extreme apologies if this has been discussed. I spent only 3-4 hours
surfing for answers (insignificant dent in the terabytes of info)

sarah is a box of usual extreme uptimes. Before Hurricane Floyd went through
the other day, she'd been rebooted once since 2.0.13 was minty fresh.
(silly brag page: http://www.buckosoft.com/linux/ )

So i decided to take this opportunity to upgrade the kernel;
remembering reading about important TCP/IP fixes around 2.0.34ish.

sarah is an AMD K5. I build using -m486.
2.0.38 and i have a problem with include/asm/bugs.h .
It seems that there are these macros rdmsr() and wrmsr()
which are used in check_privacy(void) (line 179);
a function to disable PIII serial numbers.
Also there is a problem with check_k6_bug()

I did notice in my surf that 2.0.25 had a similar problem
with time.c

I crap out with:
gcc -D__KERNEL__ -I/u1/src/linux-2.0.38/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce -pipe -m486 -DCPU=486 -c -o init/main.o init/main.c
{standard input}: Assembler messages:
{standard input}:283: Error: no such 386 instruction: `rdmsr'
{standard input}:287: Error: no such 386 instruction: `wrmsr'
{standard input}:345: Error: no such 386 instruction: `rdtsc'
{standard input}:357: Error: no such 386 instruction: `rdtsc'
make: *** [init/main.o] Error 1

2.0.34 builds ok (the next nearest version i had laying around)

I patched these in a similar fashion to this older technique
(time.c had rdmsr patched to equivalent .byte codes)
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9611.1/0101.html

--
_,--"
dik `-._ ________-_______ "----
_----'--'--------------------------------'--'----_
//_| | \ dick@buckosoft.com / | |_\\
(_____|_|__= Guilford CT +1.203.458.0389 =__|_|_____)
_\_____=___ http://www.buckosoft.com ___=_____/_
\/-(o)-~~-(o)-~~-(o)-`------'-(o)-~~-(o)-~~-(o)-\/
Early Klingon Poetry:
Wustl, Wustl, ERR RIP MIT BOOT, BIND Wustl--- linux-2.0.38.orig/include/asm-i386/bugs.h Sun Jun 13 13:21:03 1999
+++ linux-2.0.38/include/asm/bugs.h Tue Sep 21 12:21:32 1999
@@ -140,12 +140,12 @@
*/

#define rdmsr(msr,val1,val2) \
- __asm__ __volatile__("rdmsr" \
+ __asm__ __volatile__(".byte 0x0f,0x32" \
: "=a" (val1), "=d" (val2) \
: "c" (msr))

#define wrmsr(msr,val1,val2) \
- __asm__ __volatile__("wrmsr" \
+ __asm__ __volatile__(".byte 0x0f,0x30" \
: /* no outputs */ \
: "c" (msr), "a" (val1), "d" (val2))

@@ -220,10 +220,10 @@

n = K6_BUG_LOOP;
f_vide = vide;
- __asm__ ("rdtsc" : "=a" (d));
+ __asm__ (".byte 0x0f,0x31" : "=a" (d)); /* rdtsc() */
while (n--)
f_vide();
- __asm__ ("rdtsc" : "=a" (d2));
+ __asm__ (".byte 0x0f,0x31" : "=a" (d2)); /* rdtsc() */
d = d2-d;

if (d > 20*K6_BUG_LOOP) {
\
 
 \ /
  Last update: 2005-03-22 13:54    [W:0.107 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site