summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2007-10-16 21:44:25 +0000
committerkettenis <kettenis@openbsd.org>2007-10-16 21:44:25 +0000
commit41eed53f5298050b0994d01227e1bec3d7196fc1 (patch)
treed892955a870e5b54c05b3ba07c72bcc64d1caad2
parentMake ospf6ctl compile again and especially make ospf6ctl show database work (diff)
downloadwireguard-openbsd-41eed53f5298050b0994d01227e1bec3d7196fc1.tar.xz
wireguard-openbsd-41eed53f5298050b0994d01227e1bec3d7196fc1.zip
For MULTIPROCESSOR kernels, make cpu_switchto() set p->p_cpu.
-rw-r--r--sys/arch/sparc64/sparc64/genassym.cf3
-rw-r--r--sys/arch/sparc64/sparc64/locore.s6
2 files changed, 6 insertions, 3 deletions
diff --git a/sys/arch/sparc64/sparc64/genassym.cf b/sys/arch/sparc64/sparc64/genassym.cf
index 87f75170744..a304b709161 100644
--- a/sys/arch/sparc64/sparc64/genassym.cf
+++ b/sys/arch/sparc64/sparc64/genassym.cf
@@ -1,4 +1,4 @@
-# $OpenBSD: genassym.cf,v 1.22 2007/09/30 21:34:20 kettenis Exp $
+# $OpenBSD: genassym.cf,v 1.23 2007/10/16 21:44:25 kettenis Exp $
# $NetBSD: genassym.cf,v 1.23 2001/08/08 00:09:30 eeh Exp $
#
@@ -115,6 +115,7 @@ member p_stat
member p_wchan
member p_vmspace
member p_pid
+member p_cpu
member P_FPSTATE p_md.md_fpstate
member P_MD_ASTPENDING p_md.md_astpending
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s
index db824e1d941..7f61543bd87 100644
--- a/sys/arch/sparc64/sparc64/locore.s
+++ b/sys/arch/sparc64/sparc64/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.85 2007/10/16 19:22:49 kettenis Exp $ */
+/* $OpenBSD: locore.s,v 1.86 2007/10/16 21:44:25 kettenis Exp $ */
/* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */
/*
@@ -5665,9 +5665,11 @@ ENTRY(cpu_switchto)
*/
#if defined(MULTIPROCESSOR)
/*
- * XXXSMP
* p->p_cpu = curcpu();
*/
+ sethi %hi(CPUINFO_VA+CI_SELF), %o0
+ ldx [%o0 + %lo(CPUINFO_VA+CI_SELF)], %o0
+ stx %o0, [%l3 + P_CPU]
#endif /* defined(MULTIPROCESSOR) */
mov SONPROC, %o0 ! p->p_stat = SONPROC
stb %o0, [%l3 + P_STAT]