From 7c0f17db449e3cd0d98c40a065fce2766f2e363d Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <ian@gcc.gnu.org>
Date: Fri, 15 Nov 2013 17:20:25 +0000
Subject: [PATCH] runtime: Use runtime_m to get m value after call to
 runtime_mcall.

From-SVN: r204853
---
 libgo/runtime/proc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 7011f14f8a5b..de2a54bfa5e0 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -1983,7 +1983,10 @@ runtime_exitsyscall(void)
 #endif
 	gp->gcnext_sp = nil;
 	runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
-	m->p->syscalltick++;
+
+	// Don't refer to m again, we might be running on a different
+	// thread after returning from runtime_mcall.
+	runtime_m()->p->syscalltick++;
 }
 
 static bool
-- 
GitLab