patch-2.4.0-test10 linux/arch/sparc64/kernel/smp.c
Next file: linux/arch/sparc64/kernel/sparc64_ksyms.c
Previous file: linux/arch/sparc64/kernel/setup.c
Back to the patch index
Back to the overall index
- Lines: 27
- Date:
Mon Oct 30 14:34:12 2000
- Orig file:
v2.4.0-test9/linux/arch/sparc64/kernel/smp.c
- Orig date:
Sun Aug 6 11:43:17 2000
diff -u --recursive --new-file v2.4.0-test9/linux/arch/sparc64/kernel/smp.c linux/arch/sparc64/kernel/smp.c
@@ -28,6 +28,7 @@
#include <asm/softirq.h>
#include <asm/uaccess.h>
#include <asm/timer.h>
+#include <asm/starfire.h>
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
@@ -302,9 +303,17 @@
static inline void xcall_deliver(u64 data0, u64 data1, u64 data2, u64 pstate, unsigned long cpu)
{
- u64 result, target = (cpu << 14) | 0x70;
+ u64 result, target;
int stuck, tmp;
+ if (this_is_starfire) {
+ /* map to real upaid */
+ cpu = (((cpu & 0x3c) << 1) |
+ ((cpu & 0x40) >> 4) |
+ (cpu & 0x3));
+ }
+
+ target = (cpu << 14) | 0x70;
#ifdef XCALL_DEBUG
printk("CPU[%d]: xcall(data[%016lx:%016lx:%016lx],tgt[%016lx])\n",
smp_processor_id(), data0, data1, data2, target);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)