Skip to contentSkip to conversation

cpu_has_tsc

PATCH In review Brian Gerst 2 participants 2 messages May 21, 2002

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cpu_has_tsc

This patch converts drivers/char/random.c and drivers/input/joystick/analog.c to use the cpu_has_tsc macro.

--

Brian Gerst

drivers/char/random.c +2 -6
diff -urN linux-bk/drivers/char/random.c linux/drivers/char/random.c
@@ -735,18 +735,14 @@
 	__s32		delta, delta2, delta3;
 	int		entropy = 0;
 
-#if defined (__i386__)
-	if ( test_bit(X86_FEATURE_TSC, boot_cpu_data.x86_capability) ) {
+#if defined (__i386__) || defined (__x86_64__)
+	if (cpu_has_tsc)
 		__u32 high;
 		rdtsc(time, high);
 		num ^= high;
 	} else {
 		time = jiffies;
 	}
-#elif defined (__x86_64__)
-	__u32 high;
-	rdtsc(time, high);
-	num ^= high;
 #else
 	time = jiffies;
 #endif
drivers/input/joystick/analog.c +3 -4
diff -urN linux-bk/drivers/input/joystick/analog.c linux/drivers/input/joystick/analog.c
@@ -137,10 +137,9 @@
  */
 
 #ifdef __i386__
-#define TSC_PRESENT	(test_bit(X86_FEATURE_TSC, &boot_cpu_data.x86_capability))
-#define GET_TIME(x)	do { if (TSC_PRESENT) rdtscl(x); else x = get_time_pit(); } while (0)
-#define DELTA(x,y)	(TSC_PRESENT?((y)-(x)):((x)-(y)+((x)<(y)?1193180L/HZ:0)))
-#define TIME_NAME	(TSC_PRESENT?"TSC":"PIT")
+#define GET_TIME(x)	do { if (cpu_has_tsc) rdtscl(x); else x = get_time_pit(); } while (0)
+#define DELTA(x,y)	(cpu_has_tsc?((y)-(x)):((x)-(y)+((x)<(y)?1193180L/HZ:0)))
+#define TIME_NAME	(cpu_has_tsc?"TSC":"PIT")
 static unsigned int get_time_pit(void)
 {
         extern spinlock_t i8253_lock;
#1 lore raw

Excellent - thanks for doing this. This is obviously broken at the moment, and I have to disable TSCs ;-)

Quoted 5 lines · --On Monday, May 20, 2002 10:10 PM -0400 Brian Gerst <[email protected]>…

This patch converts drivers/char/random.c and drivers/input/joystick/analog.c to use the cpu_has_tsc macro.

--

Brian Gerst