diff --git a/src/runtime/os_darwin_raw.go b/src/runtime/os_darwin_raw.go
index f0c49bdb0477172fdcb3ad6bfc1e03c4e8fac875..9fc0b7ec036561913fc7a8aa44ea5c6ff3aa71c6 100644
--- a/src/runtime/os_darwin_raw.go
+++ b/src/runtime/os_darwin_raw.go
@@ -137,7 +137,8 @@ func goenvs() {
 
 // May run with m.p==nil, so write barriers are not allowed.
 //go:nowritebarrier
-func newosproc(mp *m, stk unsafe.Pointer) {
+func newosproc(mp *m) {
+	stk := unsafe.Pointer(mp.g0.stack.hi)
 	if false {
 		print("newosproc stk=", stk, " m=", mp, " g=", mp.g0, " id=", mp.id, " ostk=", &mp, "\n")
 	}