patch-2.1.9 linux/arch/i386/kernel/time.c

Next file: linux/arch/sparc/boot/Makefile
Previous file: linux/arch/i386/kernel/entry.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.8/linux/arch/i386/kernel/time.c linux/arch/i386/kernel/time.c
@@ -232,6 +232,14 @@
 	return offset + count;
 }
 
+/*
+ * this is only used if we have fast gettimeoffset:
+ */
+void do_x86_get_fast_time(struct timeval * tv)
+{
+	do_gettimeofday(tv);
+}
+
 static unsigned long (*do_gettimeoffset)(void) = do_slow_gettimeoffset;
 
 /*
@@ -465,15 +473,16 @@
                                    needs more debugging. */
 	if (x86_capability & 16) {
 		do_gettimeoffset = do_fast_gettimeoffset;
+		do_get_fast_time = do_x86_get_fast_time;
 
 		if( strcmp( x86_vendor_id, "AuthenticAMD" ) == 0 ) {
 			if( x86 == 5 ) {
 				if( x86_model == 0 ) {
 					/* turn on cycle counters during power down */
 					__asm__ __volatile__ (" movl $0x83, %%ecx \n \
-								rdmsr \n \
+								.byte 0x0f,0x32 \n \
 								orl $1,%%eax \n \
-								wrmsr \n " 
+								.byte 0x0f,0x30 \n " 
                                                                 : : : "ax", "cx", "dx" );
 					udelay(500);
 				}

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov