<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff -ur tr.prev/include/asm-i386/smp.h tr-2.4.15-pre4/include/asm-i386/smp.h
--- tr.prev/include/asm-i386/smp.h	Tue Nov 13 15:00:40 2001
+++ tr-2.4.15-pre4/include/asm-i386/smp.h	Tue Nov 13 15:19:39 2001
@@ -117,7 +117,7 @@
 	 * function calls.  Fun!  -ben
 	 */
 	__asm__ ("str %w0" : "=r" (tr) : "m" (dummy_cpu_id));
-	return tr;
+	return tr &amp; 0xffe0;	/* Pentiums leave the high bits undefined. */
 }
 
 #define smp_processor_id()	( (get_TR() &gt;&gt; 5) - (__FIRST_TSS_ENTRY &gt;&gt; 2) )
@@ -128,13 +128,8 @@
  */
 #define smp_per_cpu_data()	\
 	( (struct per_cpu_data *)					\
-	  ({	long idx;						\
-		__asm__("str %w0 ; shll %1,%0"				\
-			: "=r" (idx)					\
-			: "i" (LOG2_PER_CPU_SIZE - 5)			\
-			, "m" (dummy_cpu_id));				\
-		(long)&amp;aligned_data + idx -				\
-			(__FIRST_TSS_ENTRY &lt;&lt; (LOG2_PER_CPU_SIZE - 2)); }) )
+	  ( (get_TR() &lt;&lt; (LOG2_PER_CPU_SIZE - 5)) + (long)&amp;aligned_data \
+		- (__FIRST_TSS_ENTRY &lt;&lt; (LOG2_PER_CPU_SIZE - 2)) ) )
 
 static __inline int hard_smp_processor_id(void)
 {
</pre></body></html>