patch-2.4.0-test10 linux/arch/ia64/kernel/mca_asm.S
Next file: linux/arch/ia64/kernel/minstate.h
Previous file: linux/arch/ia64/kernel/mca.c
Back to the patch index
Back to the overall index
- Lines: 49
- Date:
Fri Oct 13 12:05:29 2000
- Orig file:
v2.4.0-test9/linux/arch/ia64/kernel/mca_asm.S
- Orig date:
Fri Jul 14 16:08:11 2000
diff -u --recursive --new-file v2.4.0-test9/linux/arch/ia64/kernel/mca_asm.S linux/arch/ia64/kernel/mca_asm.S
@@ -6,6 +6,8 @@
// 00/03/29 cfleck Added code to save INIT handoff state in pt_regs format, switch to temp kstack,
// switch modes, jump to C INIT handler
//
+#include <linux/config.h>
+
#include <asm/pgtable.h>
#include <asm/processor.h>
#include <asm/mca_asm.h>
@@ -680,32 +682,22 @@
.proc ia64_monarch_init_handler
ia64_monarch_init_handler:
-#if defined(SAL_MPINIT_WORKAROUND)
+#if defined(CONFIG_SMP) && defined(SAL_MPINIT_WORKAROUND)
//
// work around SAL bug that sends all processors to monarch entry
//
- .global bootstrap_processor
-
- movl r21=24
- movl r20=16
mov r17=cr.lid
- movl r18=bootstrap_processor
+ movl r18=__cpu_physical_id
;;
- dep r18=0,r18,61,3 // convert bsp to physical address
+ dep r18=0,r18,61,3 // convert to physical address
;;
- shr r19=r17,r20
- shr r22=r17,r21
+ shr.u r17=r17,16
ld4 r18=[r18] // get the BSP ID
;;
- and r19=0xf, r19
- and r22=0xf, r22
- ;;
- shl r19=r19,8 // get them in the right order
- ;;
- or r22=r22,r19 // combine EID and LID
+ dep r17=0,r17,16,48
;;
- cmp.eq p6,p7=r22,r18 // Am I the BSP ?
-(p7) br.cond.spnt slave_init_spin_me
+ cmp4.ne p6,p0=r17,r18 // Am I the BSP ?
+(p6) br.cond.spnt slave_init_spin_me
;;
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)