patch-2.4.3 linux/include/asm-sparc64/smp.h

Next file: linux/include/asm-sparc64/spitfire.h
Previous file: linux/include/asm-sparc64/processor.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.2/linux/include/asm-sparc64/smp.h linux/include/asm-sparc64/smp.h
@@ -10,6 +10,7 @@
 #include <linux/threads.h>
 #include <asm/asi.h>
 #include <asm/starfire.h>
+#include <asm/spitfire.h>
 
 #ifndef __ASSEMBLY__
 /* PROM provided per-processor information we need
@@ -60,6 +61,7 @@
  
 extern unsigned char boot_cpu_id;
 extern unsigned long cpu_present_map;
+#define cpu_online_map cpu_present_map
 
 /*
  *	General functions that each host system must provide.
@@ -83,7 +85,13 @@
 
 extern __inline__ int hard_smp_processor_id(void)
 {
-	if(this_is_starfire != 0) {
+	if (tlb_type == cheetah) {
+		unsigned long safari_config;
+		__asm__ __volatile__("ldxa [%%g0] %1, %0"
+				     : "=r" (safari_config)
+				     : "i" (ASI_SAFARI_CONFIG));
+		return ((safari_config >> 17) & 0x3ff);
+	} else if (this_is_starfire != 0) {
 		return starfire_hard_smp_processor_id();
 	} else {
 		unsigned long upaconfig;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)